2009-01-19 13 views
92

¿Cómo creo suites de prueba con Junit4?Junit4 Test Suites

Toda la documentación que he visto no parece funcionar para mí. Y si uso el asistente de eclipse, no tengo la opción de seleccionar ninguna de las clases de prueba que creé.

+4

Con Eclipse 3.7 Indigo, el asistente de la serie de pruebas ahora es compatible con JUnit 4 –

Respuesta

139
import org.junit.runners.Suite; 
import org.junit.runner.RunWith; 

@RunWith(Suite.class) 
@Suite.SuiteClasses({TestClass1.class, TestClass2.class}) 
public class TestSuite { 
    //nothing 
} 
9

Creo que TestSuite ha caído en desgracia. Ese podría haber sido el estilo antes de 4.x, pero ahora no está tan lejos como sé.

Acabo de anotar las pruebas que quiero y luego ejecutar la clase. Todas las pruebas anotadas se ejecutan. Podría usar Ant, pero la mayoría de las veces tengo IntelliJ ejecutándolos para mí.

+11

Podría estar equivocado, pero creo que TestSuite sigue siendo bueno cuando necesitamos especificar el orden de las pruebas, especialmente en las pruebas de integración automatizada donde deberían venir escenarios más pequeños. antes de escenarios más complejos. – bertie

+0

@duffymo Me parece interesante su comentario ya que hasta ahora he sido entrenado en la línea de pensamiento anterior a 4.x con respecto a la organización de testcases en testsuites – Vatsala

+6

Si tiene un mayor número de pruebas, diferentes áreas/módulos funcionales, una distinción entre 'núcleo y pruebas secundarias auxiliares/lentas/costosas, por cualquiera de estas razones, usted estructuraría las pruebas en un TestSuite. –

1

De la parte superior de mi cabeza cree una TestSuite y la invocación addTests. Si quieres somesource mirar a probar cualquiera lib de código abierto como Hibernate o algo de Apache y echar un vistazo bajo el directorio de prueba de la fuente por una suite pruebas ...

61

Puede crear una suite como tal. Por ejemplo, una suite AllTest se vería así.

package my.package.tests; 

@RunWith(Suite.class) 
@SuiteClasses({ 
    testMyService.class, 
    testMyBackend.class, 
    ... 
}) 

public class AllTests {} 

Ahora se puede ejecutar esto en un par de diferentes maneras:

  1. haga clic derecho y ejecutar en Eclipse como prueba Junit
  2. crear una aplicación Java capaz de correr; principal clase = 'org.junit.runner.JUnitCore' y Args = '' my.package.tests.AllTests
  3. ejecuta desde la línea de comandos:

    $ java -cp build/classes/:/usr/share/java/junit4.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore my.package.tests.AllTests 
    
+0

Agregaría aún más VoteUps para la línea CMD :) – Gruber

2

aquí están los pasos para crear una suite de JUnit en Eclipse:

  1. en vista del 'Explorador de paquetes' de la perspectiva de 'Java' eclipse, seleccione su unidad de prueba (s) en su paquete, dentro del proyecto eclipse java .
  2. Haga clic derecho en cualquiera de las pruebas seleccionadas.
  3. En el menú emergente, seleccione Nuevo, Otros ...
  4. Abrir la carpeta 'Java', a continuación, abra la carpeta 'JUnit'
  5. Seleccione 'JUnit Test Suite' y luego seleccione el botón 'Siguiente'
  6. Seleccionar botón 'Finalizar'
  7. Resultado: se crea el archivo suite 'AllTests.java', con las pruebas de forma automática incluido
  8. Seleccione el botón Ejecutar en Eclipse
  9. Resultado: todas las pruebas en ejecución del banco de
  10. Ahora puede apuntar a este archivo de suite con ANT, Jenkins u otra herramienta de integración de configuración de compilación.

Información de la versión: esto es para Eclipse Neon y JUnit 4. También puede seleccionar JUnit 3 antes de seleccionar 'Finalizar' en el paso 6.

Cuestiones relacionadas