java - new - run junit test intellij
IntelliJ no puede encontrar el recurso de prueba classpath (4)
Tengo un problema donde IntelliJ 13.1.4, al ejecutar una prueba de unidad, no puede encontrar un archivo ServiceLoader
en el directorio src/test/resources
de mi módulo.
Tenga en cuenta antes de responder que he hecho todo lo siguiente:
- El módulo es un proyecto de Gradle, y si
gradle test
la unidad funciona bien. - He realizado esta prueba de unidad con éxito en IntelliJ en el pasado, y encontró el módulo. (¿Tal vez una versión anterior de IntelliJ?)
- He comprobado dos veces la configuración del módulo IntelliJ y el directorio
src/test/resources
está marcado como un directorio de recursos de prueba. (Ver la captura de pantalla a continuación). - Estoy volcando el classpath del classloader class de la clase de prueba en la clase; tiene los directorios
build/classes/test/
ybuild/classes/java
, pero nibuild/resources/test/
nibuild/resources/main/
. - Hice clic en el botón para actualizar todos los proyectos de Gradle.
¿Alguna idea sobre qué más podría estar causando que IntelliJ falle aquí?
Captura de pantalla de la configuración de mi módulo, que muestra la configuración de Carpetas de recursos de prueba.
Cuando me encontré con el mismo problema, funcionó para mí desmarcar una vez el directorio de recursos como recursos root y luego marcarlo de nuevo como raíz de recursos:
- Haga clic con el botón derecho en la carpeta de recursos> Marcar directorio como ...> Desmarcar como raíz de recursos
- Haga clic con el botón derecho en la carpeta de recursos> Marcar directorio como ...> Probar recurso raíz
Logré que funcionara mejor creando un directorio de test-resources
paralelo al directorio de test
(!).
Todavía veo problemas intermitentes con esto, sin embargo. En esos casos, es posible abrir la configuración del proyecto IntelliJ y definir los recursos de prueba como fuente en su lugar (el proyecto Gradle no cambiará).
Debe ser un error IntelliJ, ya que he experimentado lo mismo en Android Studio.
EDITAR:
Encontré una solución al problema.
Agregue lo siguiente al final de la configuración de Gradle (y especifique la ruta de recursos de prueba):
task copyTestResources(type: Copy) {
from "${projectDir}/src/test/resources"
into "${buildDir}/classes/test"
}
processTestResources.dependsOn copyTestResources
Me encontré con el mismo problema, donde Junit estaba fallando (FileNotFound) porque tenía espacio en mi carpeta de proyecto raíz. Por ejemplo: mi proyecto / proyecto1 / ....
- Eliminé el espacio de la carpeta raíz, la prueba my_project / project1 / all pasó correctamente.
Tengo un problema similar con IntelliJ 14. A pesar de tener los archivos necesarios en mi carpeta de recursos y asegurarme de que la carpeta se especifique como un recurso en la configuración del módulo, IntelliJ no carga mis archivos de manera intermitente en el classpath.
Una solución consiste en agregar la carpeta requerida como una dependencia para el módulo en la configuración del módulo.
Primero, haga clic en el botón "+" para agregar una nueva dependencia.
Luego, seleccione la carpeta que desea agregar al classpath.
Luego selecciona la opción "clases".
Una vez hecho esto, reconstruye tu módulo una vez y con suerte eso debería ser el truco.
Idealmente, esto no debería ser un problema en absoluto. Todos los archivos en la carpeta de recursos deben colocarse directamente en el classpath. Sin embargo, cada IDE tiene sus peculiaridades.