Me gustaría reducir el tiempo que tarda nuestra compilación (usando hormiga) para ejecutar las pruebas. Actualmente estoy usando el predeterminado forkMode
, que bifurca una nueva vm en cada clase de prueba (perTest
).junit: impacto de forkMode = "once" en la corrección de la prueba
estoy pensando en cambiar a forkMode="once"
pero estoy seguro si esto va a acoplar las pruebas alguna manera y tal vez me dan falsos negativos y/o positivos falsos resultados después de ejecutar mis pruebas.
Preguntas:
Será cada caso de prueba obtener un nuevo cargador de clases de manera que todas las referencias estáticas de ciclos anteriores no son accesibles/visible ya?
¿Hay otras cosas que conducen a probar la dependencia/acoplamiento de métodos de ensayo que pueden cambiar el comportamiento (al lado de carga de la biblioteca nativa que no estoy utilizando)
- ¿Qué pasa con la basura recogida/finalización, son ellos correr después de cada prueba? (No dependen de ellos, pero sólo quiero obtener una imagen completa)
ACTUALIZACIÓN
De acuerdo con las respuestas actuales parece que junit siempre está compartiendo un único cargador de clases entre todos los casos de prueba por vm/fork al usar forkMode. (así forkMode = "una vez" significa que hay un cargador de clases para todas las pruebas)
Esto tiene muchas ventajas (pruebas más rápidas y pueden causar fallas en las pruebas debido al acoplamiento estático) pero también algunas desventajas (acoplamiento estático que solo funcionará Si se utiliza un cargador de clase compartida -> falso positivo)
la actualización parece una pregunta nueva y hace que las respuestas existentes parezcan fuera de lugar – oers
buena idea. las nuevas preguntas se pueden encontrar aquí: http://stackoverflow.com/questions/6321473/junit-how-to-avoid-false-positives-when-using-forkmode-once – MRalwasser
Su actualización es un poco engañosa. JUnit comparte un cargador de clases entre todos los casos de prueba cuando usa 'forkMode =" once ", pero no el otro forkModess, ya que no puede compartir classloaders entre máquinas virtuales en ejecución –