Por favor, lea la actualización a continuación.
Problemas similares descritos por JustACluelessNewbie ocurren en IntelliJ IDEA. El problema es que la dependencia en testCompile project(':core').sourceSets.test.output
realidad significa: "depende de las clases generadas por la tarea de construcción de gradle". Entonces, si abre un proyecto limpio donde las clases aún no se generan, IDEA no las reconocerá e informará de errores.
Para solucionar este problema, debe agregar una dependencia en los archivos de origen de prueba junto a la dependencia en las clases compiladas.
// First dependency is for IDEA
testCompileOnly files { project(':core').sourceSets.test.java.srcDirs }
// Second is for Gradle
testCompile project(':core').sourceSets.test.output
Puede observar las dependencias reconocidas por IDEA en Configuración del módulo -> Dependencias (alcance de la prueba) .
Por cierto. Esta no es una buena solución, por lo que vale la pena considerar la refactorización. Gradle tiene un subproyecto especial que contiene solo clases de soporte de prueba. Ver https://docs.gradle.org/current/userguide/test_kit.html
Actualización 2016-06-05
Más Estoy pensando en la solución propuesta menos Me gusta. Hay pocos problemas con esto:
- Crea dos dependencias en IDEA. Uno apunta a probar fuentes y otro a clases compiladas. Y es crucial en qué orden IDEA reconoce estas dependencias. Puedes jugar con él cambiando el orden de dependencia en Configuración del módulo -> pestaña Dependencias.
- Al declarar estas dependencias, está contaminando innecesariamente la estructura de dependencia.
Entonces, ¿cuál es la mejor solución? En mi opinión, está creando un nuevo conjunto de fuentes personalizado y colocando clases compartidas en él. En realidad, los autores del proyecto Gradle lo hicieron creando el conjunto de fuentes testFixtures.
Para hacerlo solo tienes que:
- Cree el conjunto de origen y agregue las configuraciones necesarias. Verifique este complemento de script utilizado en el proyecto Gradle: https://github.com/gradle/gradle/blob/v4.0.0/gradle/testFixtures.gradle
Declarar dependencia adecuada en proyecto dependiente:
dependencies {
testCompile project(path: ':module-with-shared-classes', configuration: 'testFixturesUsageCompile')
}
- Importe el proyecto Gradle a IDEA y use la opción "crear módulo separado por conjunto de origen" al importar.