¿Cómo gestionar pruebas no unitarias en un proyecto?


9

Tengo un código en mi proyecto al que llamo personalmente testsque no son pruebas unitarias. Deben ejecutarse y el resultado debe ser evaluado por un humano. Hice esto porque estoy haciendo un motor de física y durante el desarrollo, necesitaba ver lo que estaba haciendo. Entonces hice un simulationpaquete en mi módulo de prueba. Técnicamente son pruebas unitarias porque las simulaciones están usando la biblioteca de pruebas unitarias, pero no pretendo ejecutarlas todas como mis pruebas unitarias reales.

Lo que me gustaría hacer es diferenciar esas pruebas especiales de mis pruebas unitarias porque quiero ejecutar todas las pruebas unitarias fácilmente. Creo que es un poco como las pruebas funcionales. ¿Alguna vez encontró un caso en el que tuvo que preparar su aplicación para una prueba funcional? ¿Dónde debe colocarse esa preparación de prueba funcional (básicamente cuáles son mis simulaciones) en el proyecto y cómo distinguirlas de las pruebas unitarias?

Estoy en Java para poder cambiar todas las firmas de mis métodos de @Test public void myNamedTest()a public static void main(String[] args)pero sería laborioso y menos práctico para mí usar mis simulaciones.

Estoy usando juniten un gradleproyecto. Cualquier solución que cree una carpeta de prueba especial gradlees bienvenida.


2
Creo que de lo que estás hablando es de una plataforma de prueba donde puedes ejecutar pruebas ad hoc. Estos han existido desde que tengo memoria (más de 30 años), posiblemente incluso antes de eso. Por lo general, se sientan en un proyecto separado que puede acceder a la biblioteca o lo que sea, pero puede estructurarlo como desee.
Robbie Dee

3
Los términos unidad / integración / pruebas funcionales describen el alcance de la prueba: lo que se está probando. Eso es completamente independiente de cómo se ejecutan estas pruebas, por ejemplo, pruebas manuales versus pruebas automatizadas. Puede haber pruebas de aceptación automatizadas y pruebas unitarias manuales, y cualquier cosa intermedia. Entonces, si usa JUnit para ejecutar pruebas funcionales manuales, está perfectamente bien: solo manténgalas separadas de alguna manera de sus pruebas automáticas para que no se ejecuten de manera predeterminada.
amon

Respuestas:


10

Parece que las versiones posteriores de Junit admiten categorías de pruebas. Estos pueden ser útiles para clasificar cada prueba. Luego, cuando se ejecuta la automatización de compilación, puede incluir o excluir esas pruebas según la categoría.

Si desea mezclar estas pruebas con las pruebas unitarias es una cuestión de preferencia de la organización. Es posible que desee crear un proyecto separado de "plataforma de prueba" para separar las pruebas unitarias regulares frente a las más especializadas.

https://dzone.com/articles/closer-look-junit-categories

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.