2011-12-15 27 views

Respuesta

19

Una "VM bifurcada" no es un error (aunque el error que obtenga puede estar relacionado con ella).

Algunas herramientas que están involucradas en varios aspectos de la compilación y las pruebas (por ejemplo, Maven) están escritas en Java y usan la JVM para ejecutarse.

Si ejecuta pruebas unitarias para su aplicación sin bifurcar la VM, Maven ejecutará esas pruebas dentro de la misma VM que Maven. Por lo tanto, puede verse afectado por ciertas configuraciones de toda la VM (por ejemplo, algunas propiedades del sistema).

Para evitar los efectos secundarios causados ​​por Maven, es posible ejecutar las pruebas en una VM bifurcada, es decir, en una máquina virtual completamente separada que se ejecuta como un proceso diferente en el sistema operativo.

(Esto puede aplicarse a otras herramientas, Maven es sólo un ejemplo.)

Estrellarse una máquina virtual en forma de horquilla, al menos, le permite volver a la otra aplicación Java que inicia y orquestado estas pruebas unitarias. Si estuvieras ejecutando estas pruebas dentro de la misma máquina virtual, también bloquearías la aplicación que inició tus pruebas (y obtendrás muy poca información a cambio).

2

A 'fork' fork 'is la terminología utilizada en Linux para denotar la ejecución de otro proceso (sin apretar). En este caso, una VM Java bifurcada es un proceso secundario utilizado para aislar las pruebas unitarias por clase o método, lo que garantiza que no se produzca contaminación del estado entre varias pruebas.

La tarea de hormiga JUnit admite múltiples modos de horquilla como se puede ver here.

He visto errores que indican que una VM bifurcada ha muerto al usar JUnit. Esto significa que su prueba es estrellándose y que su corredor JUnit (normalmente hormiga) no puede obtener ninguna de las salidas.

Debe intentar resolver la causa del bloqueo.

Cuestiones relacionadas