works unit tests test how example create code java eclipse ant junit eclipse-3.5

java - how - Ejecute Junit-Tests desde varios proyectos convenientemente rápido en Eclipse



tests in java (4)

¿Hay alguna forma de ejecutar JUnit-Tests desde varios proyectos de forma rápida y práctica en Eclipse?

El JUnit-Runner le permite definir un paquete o una carpeta donde se ejecutan todas las pruebas contenidas.

¿Hay alguna manera de hacer esto con pruebas de varios proyectos dentro de Eclipse? Preferiblemente debería ser a través del Junit-Runner. Si hay alguna forma de tenerlo rápido a través de un Ant-job (por lo que no depender de una compilación completa con ant), también sería bueno.


En realidad, es bastante fácil realizar pruebas de JUnit en múltiples proyectos desde Eclipse. Echa un vistazo a Classpath Suite . No es con el corredor de JUnit estándar, pero no mencionaste de dónde vino ese requisito, así que no estoy seguro de si esto te afectará.

Toda la información de uso está en esa página, pero para resumir:

  1. Cree un proyecto Eclipse en función de todos los proyectos que desee probar.
  2. Escribe un conjunto de prueba simple que incluya todo:

    @RunWith(ClasspathSuite.class) public class MySuite {}



No puedes hacerlo a través de la interfaz de usuario. Mirando los puntos de extensión para los que se recopilará el elemento de más alto nivel es el Proyecto. Supongo que podría escribir un complemento para contribuir con un elemento de contexto / acceso directo adicional para un conjunto de trabajo, hacer conjuntos de trabajo los elementos de nivel superior en el explorador de paquetes y agrupar los proyectos que desea probar juntos debajo de ese conjunto de trabajo. Los problemas para hacer esto es que tendría problemas para definir las reglas de contexto para habilitar / deshabilitar la contribución "ejecutar como" y no estoy seguro de que la semántica se extienda a los conjuntos de trabajo. Así que tendrías que escribir algún tipo de envoltorio para iterar los proyectos contenidos y recopilar sus tipos de prueba. Esto parece un pequeño problema interesante Puede que tenga un juego con eso después de la escuela hoy.

Otra forma (ligeramente menos) de intrusión sería configurar otro proyecto con dependencias de proyecto en todos sus proyectos objetivo, luego usar recursos vinculados para incorporar todos los tipos de prueba al nuevo proyecto (he publicado una answer antes que describe cómo vincular) fuentes a través de proyectos). Por supuesto, si lo hace, también deberá administrar las dependencias del proyecto de prueba.

Si crea un TestSuite para cada proyecto y otro súper TestSuite que hace referencia a todas las suites de los proyectos, debe verificar que cada prueba esté incluida, lo cual es propenso a errores.

Si no te gusta jugar con los complementos o los recursos vinculados, probablemente sea mejor que uses Ant.


Podría definir un proyecto separado que depende de los otros proyectos, que contiene un conjunto que hace referencia a las pruebas individuales o conjuntos de los diferentes proyectos. Algo como esto:

@RunWith(Suite.class) @Suite.SuiteClasses( { FirstProjectSuite.class, SecondProjectSuite.class} ) public class AllSuites { }