Clase no encontrada: Conjunto de pruebas vacío en IntelliJ


183

Estoy empezando el programa de informática en mi universidad y tengo algunos problemas con IntelliJ. Cuando intento ejecutar pruebas unitarias, recibo el mensaje

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

También veo un mensaje titulado "No se encontraron pruebas" en el lado izquierdo de mi pantalla. Mi código de prueba está aquí:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

Y mi código de proyecto está aquí:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

¿Cómo puedo hacer que mis pruebas funcionen? Estoy usando la versión más reciente de IntelliJ IDEA CE.


8
Muchas cosas pueden salir mal. Para mí, fue tan simple como escribir mvn clean packageen la terminal. No estoy seguro de por qué IntelliJ importó el proyecto incorrectamente al principio.
MarkHu

1
Para mí, simplemente haga la carpeta como "raíz de recursos de prueba" ...
Xin Meng


Build -> Clean and Build -> Rebuild fue suficiente para mí.
gustavoknz

Respuestas:


109

Tenía el mismo mensaje. Tuve que eliminar la configuración Run / Debug.

En mi caso, ejecuté la prueba de la unidad como una prueba local antes. Después de eso, moví mi prueba al paquete androidTest e intenté ejecutarlo nuevamente. Android Studio recordó la última configuración de ejecución, por lo que intentó ejecutarla nuevamente como una prueba de unidad local que produjo el mismo error.

Después de eliminar la configuración y ejecutar la prueba nuevamente, generó una nueva configuración y funcionó.

ingrese la descripción de la imagen aquí


Creo que en la mayoría de los casos su solución sería la más universal y la menos mágica. Trabajé en mi proyecto como un encanto.
ba3a

Lo intenté pero no funcionó solo. También tuve que invalidar los cobros. File > Cashes / Restart
Lukasz

Lo intenté y también invalidé los cobros. Pero aún no funciona.
alas

Esto funcionó para mí después de recordar hacer clic en el botón obvio ok en lugar de simplemente cerrar el cuadro de diálogo :-)
rimsky

No veo ninguna entrada de "Ejecutor de instrumentación específica" en mi Android Studio.
David


49

Tuve el mismo problema. Reconstruí el proyecto y me ayudó.

Vaya a Compilar -> Proyecto de reconstrucción

Después de eso, si está utilizando la herramienta Maven, le recomiendo usar la opción Reimportar todos los proyectos Maven


Si no ayuda, pruebe otras posibles soluciones:

  • Vaya a Archivo -> Invalidar cachés / reiniciar -> Invalidar y reiniciar

o:

  • En la estructura de su proyecto Maven src / main / java, haga clic derecho en el directorio java y seleccione la opción Marcar directorio como -> Orígenes Raíz

    De manera similar, haga lo mismo con el directorio de prueba , entonces: src / test / java haga clic derecho en el directorio java y seleccione la opción Marcar directorio como -> Raíces de fuentes de prueba

o:

  • Vaya a Ejecutar -> Editar configuraciones y en la sección JUnit elimine las configuraciones de prueba. Aplicar los cambios. Luego, intente ejecutar sus pruebas. La nueva configuración debe crearse automáticamente.

o:

  • Vaya a Archivo -> Estructura del proyecto , seleccione Módulos , luego seleccione su módulo adecuado y vaya a la pestaña Rutas .
    Verifique las opciones: Se debe seleccionar el
    botón de opción Usar la ruta de salida de compilación del módulo .

    La ruta de salida debe estar dentro de su proyecto. Además , la ruta de salida de prueba debe ser un directorio dentro de su proyecto. Por ejemplo, puede tener un aspecto similar: Ruta de
    salida: C: \ ruta \ a \ su \ módulo \ yourModule \ target \ classes
    Prueba Ruta de salida: C: \ ruta \ a \ your \ module \ yourModule \ target \ test-classes

    Excluir salida los caminos deben estar deseleccionados.

10
Reconstruir el proyecto ( Build -> Rebuild Project) fue lo que funcionó para mí. ¡Gracias!
Francisco C.

Esta solución funcionó para mí, lo último sobre los módulos y el uso de una ruta de salida. Gracias.
Mohammad Ganji

Como una solución más desesperada, elimine el archivo .idea y abra el proyecto nuevamente. Sin embargo, perderá algunas configuraciones / ajustes.
Aaron

Establecer <project-root>/src/test/javacomo raíz de prueba, y Build -> Rebuild Projectfuncionó para mí. Además, cuando las clases que contenían pruebas estaban en paquete con el nombre del paquete comenzando java.*, obtuve Security Exception.
Jefe Maestro

El problema es que las dependencias estaban desactualizadas
Dellasavia

17

Esto también puede suceder si su carpeta de prueba se ha importado como un módulo separado (se muestra un pequeño cuadrado en el icono de la carpeta en la vista del proyecto).
Elimine el módulo seleccionando la carpeta de prueba en la vista del proyecto y presione DEL.
Entonces comienza tu prueba.
Si aparece un cuadro de diálogo emergente con un mensaje de error, que no se ha seleccionado ningún módulo, especifique su módulo raíz en el menú desplegable.


3
Este también era mi problema (cuadrado en la carpeta de prueba, ¡no habría sabido lo que eso significaba!); para solucionarlo, abrí la configuración de ejecución y descubrí que "Usar ruta de clase del módulo:" estaba configurado en el módulo de prueba. Lo cambié a la ruta de clase de mi proyecto, y funcionó bien. ¡Gracias por señalar el problema del "módulo separado"!
Redboots

Esto es exactamente lo que me pasó. Creé un proyecto Spring usando start.spring.io y lo abrí. Luego comencé el SpringBootTest y me encontré con el error "Clase no encontrada:" ... "Vacío conjunto de pruebas". Después de seguir su solución y presionar el botón ELIMINAR en la carpeta de prueba y recrear la configuración de ejecución, todo estuvo bien. Sugerencia adicional: al presionar el botón Eliminar en la carpeta de prueba aparece un cuadro de diálogo que dice algo como "no se eliminarán archivos". Así que no temas presionar el botón.
kleenxcoder

14

Tuve un problema similar después de comenzar un nuevo proyecto IntelliJ. Descubrí que la "ruta de salida de compilación del módulo" para mi módulo no se especificó correctamente. Cuando asigné la ruta en la "ruta de salida de compilación" del módulo a la ubicación adecuada, el problema se resolvió. La ruta de salida de compilación se asigna en la configuración del proyecto. En Módulos, seleccione el módulo involucrado y seleccione la pestaña Rutas ...

Ficha Rutas en la Configuración del proyecto | Diálogo de módulos

captura de pantalla

... Envié la salida del compilador a una carpeta llamada "salida" que está presente en la carpeta principal del Proyecto.


14

En mi caso, tenía todo lo demás en el lugar correcto, pero estaba trabajando en una biblioteca de Java con Kotlin . Acabo de olvidar aplicar el complemento:

apply plugin: 'kotlin-android'

Y ahora está funcionando como se esperaba ahora.


1
Lo mismo para mi. Es molesto que no haya una opción de Kotlin al crear módulos.
Rupert Rawnsley

11

Entonces, mi problema aquí fue con los nombres de las carpetas. Había llamado a mi carpeta de códigos Clases 2016/2017, que a IntelliJ no le gustaba. Simplemente elimine la barra oblicua (u otro personaje ofensivo en la ruta), vuelva a importar el proyecto, ¡y estará listo!


Esto me ayudo. Para otros, tenía la carpeta en Dropbox. Cuando lo saqué de Dropbox y volví a importarlo, el problema desapareció.
Mick Sear

¡Esta respuesta merece un premio nobel de paz!
Ali Abbas Jaffri

7

En Android Studio 3.0 +, a veces las pruebas de IU se interpretan de alguna manera como pruebas unitarias y no solicita la selección de implementación de destino. Puede ir a Editar configuración y marcarlo como una prueba de integración y comenzaría a funcionar


Además, en Android Studio 3.0.1, el botón de ejecución junto a la prueba no funciona. Después de actualizar a 3.1 canario 8, comenzó a funcionar nuevamente.
Marc


6

Si el proyecto tiene un problema de compilación, entonces las pruebas podrían no ejecutarse. En primer lugar, cree el proyecto como Build -> Build Project. Después de una compilación exitosa, vuelva a ejecutar la prueba.

Si nada funciona, simplemente cierre la ventana del proyecto y elimine el proyecto y vuelva a importarlo como proyecto Gradle / Maven, que configurará todo para usted al anular los archivos creados por IntelliJ existentes. Esto eliminará la caché no válida creada.

También puede simplemente invalidar el caché.

File -> Invalidate Caches/Restart


5

Tuve la misma pregunta cuando importé algunos jarde Maven y, posteriormente, causé el empty-test-suiteerror.

En mi caso, fue porque el experto restableció los archivos del módulo. Lo que resolví borrando mi configuración predeterminada:

  1. Estructura abierta del proyecto con shift- ctrl- alt- sacceso directo

Captura de pantalla de las fuentes de PModules

  1. Mire Módulos> Fuentes y complete el paquete de Fuentes o el Paquete de prueba.

5

Reimportar proyecto o módulo puede resolver el problema. Resolví este problema cambiando el nombre del paquete al desarrollar. Pero el camino de salida y ruta de salida de la prueba es el camino viejo. Entonces intellij no puede encontrar la clase desde el camino anterior. Entonces, la forma más fácil es corregir la ruta de salida y la ruta de salida de prueba.

Configuración del módulo Intellij


Por alguna razón, heredar la ruta del proyecto no me funciona en MacOs, ¿tienes alguna idea de por qué puede estar sucediendo?
Johnny_D

@Johnny_D ¿Está seguro de que su problema se debe a cambiar el nombre del paquete?
Bejond

5

Tuve el mismo problema (Android Studio 3.2 Canary 4) y probé la mayoría de las sugerencias descritas en otras respuestas, sin ningún éxito. Tenga en cuenta que esto sucedió después de mover el archivo testa la androidTestcarpeta. Todavía se mostraba en configuraciones de ejecución como prueba en lugar de prueba instrumentada.

Finalmente termino creando un nuevo archivo:

  1. Cree una nueva clase de prueba instrumentada con un nombre diferente.
  2. Copie todo el código de su clase.
  3. Ejecutarlo.
  4. Eliminar la clase anterior.
  5. Cambie el nombre de la nueva clase al nombre deseado.

No es mala idea =) ¡Gracias!
Andrew Grow

5

Curiosamente, me he enfrentado a este problema muchas veces debido a diferentes razones. Por ejemplo, invalidar la caché y reiniciar también ha ayudado.

Por último, lo arreglé corrigiendo mi ruta de salida en Archivo -> Estructura del proyecto -> Proyecto -> Salida del compilador del proyecto a: absolute_path_of_package / out

por ejemplo: / Users / random-guy / myWorkspace / src / DummyProject / out


¡Es este el que hizo funcionar mi suite de prueba! ¡Gracias!
Frank

3

Esto también sucederá cuando su módulo y / o proyecto-jdk no estén configurados correctamente.


Aclare la "configuración adecuada". No creo que esto sea útil para los usuarios con este problema. ¡Gracias!
Eggmatters

3

Eliminar .ideay volver a importar el proyecto SBT resolvió este problema para mí.


Funciona después de eliminar la carpeta .idea y volver a importar el proyecto maven (y)
Amine Soumiaa

Esto fue lo mismo para mí. Revisé las sugerencias anteriores pero ninguna funcionó. Eliminé la carpeta base .idea y también los archivos .iml en los submódulos.
Dennis

3

En mi caso, IntelliJ no compiló las fuentes de prueba por una extraña razón. Simplemente modifiqué la configuración de compilación y agregué el objetivo de Maven clean test-compileen la Before launchsección


Intenté todo lo anterior, pero solo esto ayudó :) ¡Gracias!
Antenka

2

En mi caso hubo un problema con el nombre de la prueba :).

Si el nombre era: dummyNameTestentonces no obtenga pruebas donde se encuentre, pero en caso de que testDummyNametodo esté bien


1

Tuve el mismo problema. En mi caso, tuve algunas clases de prueba en un paquete / carpeta fuera de la carpeta principal. Pero cuando revisé la configuración Ejecutar, siempre estaba tratando de buscar clases dentro de la carpeta principal (y no mis paquetes fuera de main). Entonces, si ese es el caso, debe mover sus paquetes a donde apunta la configuración Ejecutar. O cambie la configuración de ejecución para que apunte a sus paquetes.


1

¿Su prueba requiere un dispositivo Android (emulador o hardware)?
Si es así, se llama "prueba instrumentada" y reside en "nombre-módulo / src / androidTest / java /".
Si no, se llama "prueba de unidad local" y reside en "nombre-módulo / src / test / java"

https://developer.android.com/training/testing/start/index.html

Obtuve el mismo error porque había escrito una prueba de unidad local, pero se colocó en la carpeta para pruebas instrumentadas. Mover la prueba de unidad local a la carpeta "src / test / java" me lo arregló.


1

Estaba obteniendo el mismo error. Mi dispositivo no estaba conectado a Android Studio. Cuando me conecté al estudio. Funciona. Esto resuelve mi problema.


1

Probablemente se deba a que la carpeta no está configurada como fuente de prueba, lo que se puede hacer a través de Configuración del módulo> Módulos.


1

Para mí, el proyecto fue compilado fuera del proyecto. Solo cambio el camino. Para cambiar la ruta (estoy usando mac).

  • Vaya a Archivo -> Estructura del proyecto
  • Ir al módulo en el lado izquierdo.
  • Seleccionar rutas, seleccionar el botón de opción (usar la ruta de salida de compilación del módulo)
  • Proporcione la ruta de salida y la ruta de salida de prueba que está dentro de su proyecto
  • Anule la selección de Excluir rutas de salida.
  • Vaya a Archivo -> Haga clic en Invalidar caché y reinicie

1

En mi caso, el problema se solucionó yendo a mi build.gradley cambiando

dependencies {
    testImplementation 'junit:junit:4.12'
}

a

dependencies {
    testCompile 'junit:junit:4.12'
}

Esto también me ayudó, sorprendentemente. Parece que forzó una recompilación. Probé varias limpiezas / caché antes sin ayuda
Dieter Menne

Por lo que vale, el problema para mí se solucionó como la solución que propongo anteriormente. Sin embargo, la razón fue que estaba usando un complemento que no era compatible con el comando 'implementación'. Por lo tanto, sugeriría que desee ver si algunos de los complementos de su proyecto también tienen actualizaciones. Tal vez un mejor enfoque sería para actualizar el plugin desde Gradle quiere despreciar el comando "compilación"
bremen_matt

1

Probé todas las soluciones pero ninguna de ellas me ayudó. Al final ejecuté la prueba en modo de depuración y ... comenzó a funcionar. Tal vez el caché de algún experto fue despejado. Es difícil de decir. Funciona. Tratarmvn test -X


1

Simplemente haga clic con el botón derecho del mouse en el archivo en la ventana Proyectos y seleccione

"Ejecute su prueba ".

Ahora todo comienza bien, probablemente porque la configuración de ejecución defectuosa se está reconstruyendo nuevamente.


1

Esto puede suceder (al menos una vez para mí;) después de instalar la nueva versión de IntelliJ y los complementos de IntelliJ aún no se han actualizado.

Puede que tenga que hacer manualmente Check for updates…desde el menú de ayuda de IntelliJ.


1

En su estructura de proyecto Maven src / main / java, haga clic derecho en el directorio java y seleccione la opción Marcar directorio como -> Rooteo de fuentes

Del mismo modo, haga lo mismo con el directorio de prueba, así que: src / test / java haga clic derecho en el directorio de java y seleccione la opción Marcar directorio como -> Raíz de fuentes de prueba

Trabajó para mi :-)


1

siga los pasos a continuación en Intellij (con capturas de pantalla para una mejor comprensión):

  1. ir a Archivos -> Estructura del proyecto

ingrese la descripción de la imagen aquí

  1. navegue a los módulos y ahora seleccione el módulo en el que está presente su archivo de prueba Junit y seleccione el botón de opción "Usar la ruta de salida de compilación del módulo".

  2. Mencione la ruta de la carpeta de clases respectiva, similar a la captura de pantalla adjunta.

ingrese la descripción de la imagen aquí

  1. Aplicar y está bien. ¡Esto funcionó para mí!

0

El mismo problema aquí usando IDEA 15.0.6, y nada ayudó, excepto cuando cambié el nombre del paquete en el que estaba la clase de prueba. Luego lo cambié a su nombre original y aún funcionó, por lo que la acción de cambio de nombre podría haber borrado algo de caché.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.