Estoy trabajando con un proyecto legado que tiene:¿Puede Ant categorizar pruebas JUnit basadas en la jerarquía de herencia?
- unidad pura prueba
- Pruebas de integración (lento para correr, tienen todo tipo de dependencias desagradables)
Busco la forma más sencilla de ejecutar ambos tipos de pruebas por separado con Ant.
Me pregunto si hay una manera de tener Ant reconocer automáticamente estas dos categorías basadas en la jerarquía de herencia:
StringUtilsTest extends TestCase // "pure unit test"
vs
ProductionDBTest extends AbstractTransactionalTesterBase // "integration test"
Hay una jerarquía de superclases abstractas que las pruebas de integración se basan encendido, pero todos se reducen a algunas clases de prueba de primavera y finalmente AbstractSpringContextTests
que se extiende junit.framework.TestCase
.
En otras palabras, ¿puedo distinguir, en Ant, pruebas que extienden (indirectamente) AbstractSpringContextTests
y pruebas que extienden directamente TestCase
? O tendría que pasar manualmente las pruebas y, p. ponerlos en Categories o TestSuites por separado? (Hay muchas pruebas para que yo no quiero hacer eso.)
Resolución: Traté de Sean (muy prometedor) approach, pero no podía hacerlo funcionar (fácilmente). Así que terminé examinando las pruebas semi-manualmente después de todo, anotando las puras (que era el grupo más pequeño) usando una configuración descrita en this SO question, y ejecutándolas con Ant like this. (Tenga en cuenta que la escritura de un TestRunner personalizado es no es necesario)
En última instancia, fui con anotaciones, por lo que podría aceptar esto, pero ... Tengo un problema con su advocación de TestRunners personalizados. :) Nunca habiendo escrito uno, no parecía * que * directo para mí, basado en googlear por un tiempo. Afortunadamente, TestRunner personalizado no es ** necesario **, ya que puede usar una configuración como [esto] (http://stackoverflow.com/questions/2176570/how-to-run-all-tests-belonging-to-a -cierta-categoría-en-junit-4)! – Jonik