works test how generate example create code cases automatically eclipse junit

test - JUnit+Maven+Eclipse: ¿Por qué @BeforeClass no funciona?



junit 5 download (3)

Sergio, tenías razón al extender TestCase causando el problema. Si extiende TestCase, JUnit trata su clase de prueba como una antigua (antes de la clase JUnit 4) y elige org.junit.internal.runners.JUnit38ClassRunner para ejecutarla. JUnit38ClassRunner no sabe acerca de la anotación @BeforeClass . Consulte el código fuente del método runnerForClass método AllDefaultPossibilitiesBuilder y runnerForClass de JUnit3Builder para obtener más detalles.

Nota: Este problema no está relacionado con Eclipse o Maven.

Estoy usando JUnit 4, Maven 2 y el último Eclipse. El problema es simple: me gustaría realizar alguna configuración (conectarme a una base de datos) antes de que se ejecuten mis pruebas.

Intenté @BeforeClass en muchos lugares diferentes, pero Eclipse y Maven están ignorando esto. ¿Alguna ayuda para lograr esta configuración inicial?

¡Gracias!

public abstract class BaseTestCase extends TestCase { @BeforeClass public static void doBeforeClass() throws Exception { System.out.println("No good @BeforeClass"); // DO THE DATABASE SETUP } }

Ahora las pruebas que extienden BaseTestCase:

public class LoginActionTest extends BaseTestCase { @Test public void testNothing() { System.out.println("TEST HERE"); assertEquals(true, true); } }

Maven y Eclipse simplemente ignoran mi @BeforeClass ??? ¿Alguna otra forma de realizar la configuración antes de las pruebas?


Sospecho que está ejecutando JUnit 3. Intente cambiar el nombre de su prueba a algo que no empiece con "prueba". Si la prueba ya no se está ejecutando, está utilizando JUnit 3 (que asume que los métodos de prueba son métodos que comienzan con "prueba").

Por favor, publique su configuración de lanzamiento de Eclipse.


Tengo un problema similar y lo solucioné especificando las versiones de archivo seguro y junit explisitly:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.8.1</version> <dependencies> <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit47</artifactId> <version>2.8.1</version> </dependency> </dependencies> <configuration> <parallel>methods</parallel> <threadCount>10</threadCount> <excludes> <exclude>**/*IntegrationTest.java</exclude> </excludes> </configuration> </plugin>

Más información está aquí: http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html

Parece que la versión junit 3.8.1 se usa transitoriamente a través de maven-resources-plugin y plexus-container-default. Puede imprimir el árbol de dependencias llamando a mvn dependency: tree . Creo que no hay otra manera de asegurarse de que el fuego use junit 4.