java - tutorial - pruebas unitarias
No se encontraron pruebas con el corredor de prueba ''JUnit 4'' (30)
Mi prueba de Java funcionó bien desde Eclipse. Pero ahora, cuando reinicio la prueba desde el menú de ejecución, aparece el siguiente mensaje:
No tests found with test runner ''JUnit 4''
En el archivo .classpath
, tengo todos los archivos jar
y, al final, tengo:
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>
¿Cómo puedo resolver este error y volver a ejecutar las pruebas?
¿Está basado en tu proyecto Eclipse? Si es así, puede que necesite actualizar la versión de m2eclipse.
Solo una nota rápida: tengo un proyecto en Eclipse que está basado en maven, y se generó inicialmente usando el asistente "nuevo proyecto maven" en Eclipse. Estoy usando JUnit 4.5 para las pruebas unitarias, y pude ejecutar las pruebas felizmente desde la línea de comandos usando maven, y pruebas individuales de Eclipse usando correr como prueba JUnit ... Sin embargo, cuando traté de ejecutar todas las pruebas en el proyecto invocando ejecutar como prueba JUnit ... en el nodo raíz del proyecto, Eclipse se quejó de que " no se encontraron pruebas con el corrector de prueba junit 4 ". Se resolvió actualizando m2eclipse a la última versión de desarrollo estable del sitio de actualización m2eclipse (específicamente, actualicé desde la versión 0.9.8.200905041414 a la versión 0.9.9.200907201116 en Eclipse Galileo).
Desde aquí: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html
Cerrar y abrir el proyecto funcionó para mí.
Compruebe si la carpeta en la que se encuentran sus pruebas es una carpeta de origen. Si no, haga clic derecho y use como carpeta de origen.
Cuando me enfrento a este problema, solo edito el archivo y lo guardo ... funciona como un hechizo
Cuando tenemos estos errores, parece que Eclipse está confundido. Reinicie Eclipse, actualice el proyecto, límpielo, permita que Eclipse lo reconstruya y vuelva a intentarlo. La mayoría de las veces eso funciona como un encanto.
Descubrí que Eclipse parece realizar solo pruebas de estilo JUnit 3 si su clase de prueba se extiende desde TestCase
. Si eliminas la herencia, las anotaciones funcionaron para mí.
Tenga en cuenta que debe importar de forma estática todos los métodos assert*
requeridos como import static org.junit.Assert.*
.
Empecé a trabajar con Selenium y Eclipse en mi trabajo y estaba haciendo mi primera prueba automática y la eliminé del código @Antes, @Test y @After notas y tuve este problema "No se encontraron pruebas con el corrector de pruebas junit4" .
Mi solución fue simplemente agregar nuevamente las notas @Before, @Test y @ After y con eso mi script funcionó. Es importante no eliminar esto del código.
Esta es una prueba simple que usa Google para buscar algo:
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
public class TestingClass {
private WebDriver driver;
//Creates an instance of the FirefoxDriver
**@Before**
public void SetUp() throws Exception {
driver = new FirefoxDriver();
}
**@Test**
//Search using keyword through Google Search
public void TestTestClass2 () throws Exception {
driver.get("http://www.google.com.mx/");
driver.findElement(By.name("q")).sendKeys("selenium");
Thread.sleep(10000);
driver.findElement(By.name("btnG")).click();
Thread.sleep(10000);
}
//Kill all the WebDriver instances
**@After**
public void TearDown() throws Exception {
driver.quit();
}
}
En el menú contextual de su directorio ''prueba'', seleccione ''Crear ruta'' -> ''Usar como carpeta fuente''. Eclipse debería ver los archivos de unitTests.java como archivos de origen. Advertencia ''No se encontraron pruebas JUnit'' porque no hay archivos unitTests.class en su directorio ''compilación''
Estaba enfrentando el mismo problema y lo depuré con malos ejemplos en la web y en las partes internas de junit. Básicamente, no hagas que tu clase extienda TestCase, como muestran algunos ejemplos para Junit 4.x. Use alguna Prueba de convención de nomenclatura o si desea tener una anotación, puede usar @RunWith (JUnit4.class).
Si necesita acceso para afirmar los métodos extienda Assert o use importaciones estáticas.
Si su clase extiende TestCase, incluso si usa Junit 4 Runner, se ejecutará como 3. Esto se debe a que en el código de inicialización hay detección:
Ver JUnit3Builder y las líneas:
boolean isPre4Test(Class<?> testClass) {
return junit.framework.TestCase.class.isAssignableFrom(testClass);
}
Esto devuelve verdadero y no se probará la prueba de compatibilidad con junit4.
Esto me pasó a mí también. Descubrí que en Eclipse no hice un nuevo archivo Java Class y que por eso no estaba compilando. Intenta copiar tu código en un archivo de clase java si aún no está allí y luego compilar.
Esto me pasó a mí también. Intenté reiniciar Eclipse y también prefijé mis métodos de prueba con las pruebas. Ninguno funcionó.
El siguiente paso funcionó: Cambie todos los métodos de prueba presentes en @BeforeClass y @AfterClass a métodos estáticos.
es decir, si tiene su método de prueba en el siguiente formato:
@BeforeClass
public void testBeforeClass(){
}
luego cámbialo a:
@BeforeClass
public static void testBeforeClass(){
}
Esto funcionó para mí.
Haga clic con el botón derecho en Proyecto -> Dependencias de compilación -> elimine los que se han excluido de la ruta de compilación -> Haga clic en Aceptar
Haga clic derecho en el proyecto -> Maven -> Actualizar proyecto.
Usted debe ser bueno para ir..
Hay otra posibilidad, es posible que haya cambiado la prueba de Junit de la versión inferior (por ejemplo, Junit 3) a Junit 4. Es así que siga los pasos a continuación:
1. Right Click on class
2. Select Run as >> "Run Configurations"
3. Check your "Test Runner" option in new window
4. If it not same as maven change it for example change it as Junit 4.
He encontrado la respuesta:
Obtuve este error cuando ejecuté la prueba independiente de eclipse (haga clic con el botón derecho en el método y elija ejecutar como prueba junit),
Cuando ejecuté la clase completa como prueba junit, la prueba se ejecutó correctamente con los parámetros.
Intenta agregar
@Test sobre el método para la prueba como este
@Test
public void testParse()
{
}
Lo que solucionó mi caso fue similar a la respuesta de @JamesG: reinicié Eclipse, reconstruí el proyecto y lo actualicé; PERO antes de hacer nada de eso, primero cerré el proyecto (haga clic con el botón secundario en el explorador de paquetes -> Cerrar proyecto) y luego lo volví a abrir. Entonces funcionó.
Una solución alternativa que encontré antes de encontrar la última solución que acabo de describir: copie la clase de prueba y ejecute la clase de prueba como JUnit.
Mi problema era esa declaración import org.junit.Test;
ha desaparecido (¿o no ha sido añadido?). Después de agregarlo, tuve que eliminar otra declaración de import
(Eclipse te indicará cuál) y todo comenzó a funcionar nuevamente.
Muy tarde, pero lo que me solucionó el problema fue que todos los nombres de mi método de prueba comenzaron con letras mayúsculas: "prueba de vacío público". Hacer que la minúscula funcione.
Otra posible solución que lanzaré al ring: no pude ejecutar la clase de prueba desde la ventana del editor, ni el Package Explorer, sino haciendo clic con el botón derecho en el nombre de la clase en la vista de esquema y seleccionando Ejecutar como JUnit La prueba funcionó ... ¡imagínate!
Probé la solución de Germán. Funcionó para todo el método de mi clase, pero tengo muchas clases en mi proyecto.
Así que traté de eliminar de la ruta de compilación y luego volver a agregarlo. Funcionó perfectamente.
Espero eso ayude.
Puede ser que su configuración de lanzamiento JUnit sea para una clase de prueba individual, y de alguna manera cambió esa configuración para "ejecutar todas las pruebas en una carpeta de origen, paquete o proyecto"
Pero eso podría desencadenar el mensaje de error "No se encontraron pruebas con el corredor de prueba ''JUnit 4''".
O hiciste una modificación en tu clase de prueba, eliminando la anotación @Test
.
Vea esta página wiki .
Puede solucionar este problema haciendo lo siguiente:
- Haga clic derecho en la carpeta llamada ''Prueba''> Ruta de compilación> Usar como carpeta de origen
- O puede establecer classpath igual que:
<classpathentry kind="src" path="src/test/java"/>
. Reemplaza "src / test / java" por su paquete de prueba
Este problema ocurrió debido a que junit no puede reconocer su código fuente: D
Seis años después ... y todavía hay problemas con Eclipse y ocasionalmente no encuentra JUnits.
En mi Eclipse Mars 2 descubrí que no reconocerá las clases de prueba extraídas de git si hay más de 9 o 10 anotaciones de @Test
en el archivo. Necesito comentar cualquier prueba adicional, ejecutar la clase de prueba, luego descomentarlos y volver a ejecutar la clase. Imagínate...
Sin juicios de prueba en JUnit4. Use anotaciones en su lugar o use las antiguas convenciones de nombres JUnit3.
Ejemplo:
@RunWith(Suite.class)
@SuiteClasses({YourClassWithTests.class})
También estoy ejecutando Eclipse con Maven (m2e 1.4). Las pruebas se estaban ejecutando con Maven, pero no con Eclipse ... incluso después de varias aplicaciones de Maven>Update project
.
Mi solución fue agregar algunas líneas en .classpath generado por m2e. Las líneas ahora se están pegando.
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
También me enfrenté al mismo problema mientras ejecutaba la prueba JUnit. Resolví esto colocando la anotación @Test justo encima de la función de prueba principal.
Tengo este problema de vez en cuando. Lo que más me soluciona el problema es ejecutar la prueba JUnit desde las configuraciones de ejecución ... asegurando que JUnit 4 esté configurado como el corredor de prueba.
En general, veo este problema cuando intento Ejecutar como ... Prueba de Junit desde el menú contextual en el Explorador de paquetes. Si hace clic con el botón derecho en el código de la prueba que está intentando ejecutar, en lugar de seleccionar Ejecutar como ... Prueba Junit seleccione Configuraciones de ejecución ... asegúrese de que el Proyecto, la Clase de prueba y el Corrector de prueba estén configurados correctamente, haga clic en Aplicar y luego ejecute trabaja todo el tiempo para mi
Usando ScalaIDE (3.0.4-2.11-20140723-2253-Typesafe) estaba teniendo un problema similar con el menú contextual de la Right Click Scala Test Class-> Run As -> Scala Junit Test
.
Intenté editar la clase (pero no por una falla de compilación), limpiar, cerrar el proyecto, cerrar Eclipse. Ninguno de ellos trabajó para restaurar el menú contextual para las clases que anteriormente habían funcionado bien. Las clases de prueba no usan la anotación @Test
y en su lugar usan la @RunWith(classOf[JUnitRunner])
en la parte superior de la clase utilizando el código ScalaTest.
Cuando intenté elegir Scala Junit Test
directamente desde el editor de ejecución Run Configuration, recibí el diálogo de la pregunta. La respuesta de Footix29 fue la clave para mí.
Noté que aunque había limpiado mi proyecto varias veces, mis clases en el directorio / bin no habían sido reconstruidas en un tiempo.
Así es como recuperé el menú contextual y pude volver a ejecutar las Scala Junit Test
:
- limpiado
manually
las clases eliminando/bin/<package dir>*
través de Explorer -
Project -> Clean
ed el proyecto junto con una reconstrucción completa
Sospecho que una edición de clase en general es capaz de limpiar un estado guardado de Eclipse y ponerlo de nuevo en funcionamiento. En mi caso, todas las clases anteriores que probé habían fallado, así que el paso de limpieza manual
era solo el martillo que necesitaba. Sin embargo, otros trucos que afectan el concepto de Eclipse del estado de compilación / compilación de clase también deberían funcionar.
Además, creo que este comportamiento se desencadenó en parte al intentar refactorizar una clase Scala renombrándola (que el IDE Scala Eclipse apesta), donde toda la limpieza después del cambio inicial del archivo es manual. No hubo errores de compilación, pero tampoco hubo advertencias de que esperaba que algo estuviera definitivamente atascado en la información de estado de compilación de Eclipse.
Verifique si su clase de prueba extiende "TestCase". si es así, elimine esa cláusula. Tu clase no necesita extenderse desde la clase "TestCase". Es la mayoría de los casos que he conocido.
public class MyTestCase extends TestCase{
@Test
public void checkSomething() {
//...
}
}
//Result> AssertionFailedError: No test Found in MyTestCase
Seguir TestCase debería estar bien.
public class MyTestCase {
@Test
public void checkSomething() {
//...
}
}
//Works fine
esto solo me pasó a mí. Reconstruir o reiniciar Eclipse no ayudó.
Lo resolví cambiando el nombre de uno de los métodos de prueba para comenzar con "prueba ..." (estilo JUnit3) y luego se encuentran todas las pruebas. Cambié el nombre a lo que era anteriormente, y todavía funciona.