Pregunta

He estado usando maven2 y hudson durante un tiempo para hacer mi integración continua, pero encuentro que Eclipse y Maven no juegan bien juntos. Claro que hay un complemento, pero es de mal gusto mezclar el proyecto de Maven en algo que le guste al eclipse y los tiempos de construcción y la prueba de la unidad son demasiado largos. Estoy considerando volver a un proyecto de eclipse puro sin hormigas ni expertos. Con el complemento infinito y el posible agente JavaRebel, me daría un ciclo muy rápido de compilación-despliegue-prueba. Sin embargo, todavía me gustaría tener pruebas automáticas y también, por lo que:

¿Cómo uso la integración continua con un proyecto de Eclipse?

¿Hay una forma de línea de comandos para hacerlo?

¿Hay un servidor de compilación que ya lo admita de forma nativa?

¿Fue útil?

Solución 2

Logré encontrar una buena solución. Simplemente obtuve infinitest (se puede instalar desde el mercado de Eclipse) para trabajar cuando uso Maven y Eclipse

En Eclipse- > Propiedades del proyecto- > Java Build Path- > Source, desmarca la casilla llamada: " Permitir salida carpetas para las carpetas de origen "

Eso permitirá que su proyecto tenga más de una ruta de salida y Eclipse comenzará a informar las clases de prueba como parte de la ruta de clase. ¡Infinitest ahora lo encuentra y comienza a ejecutar pruebas!

Todo lo que hice fue usar el complemento oficial de Eclipse de Maven y agregarlo a mi POM

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.5</version>
        <!-- <scope>provided</scope> -->
    </dependency>

    <dependency>
        <groupId>org.infinitest</groupId>
        <artifactId>infinitest</artifactId>
        <scope>test</scope>
        <version>4.0</version>
    </dependency>

</dependencies>

Otros consejos

Sí, el plugin Eclipse Maven2 es una mierda por ahora. Pero te sugiero que te quedes ahí, hay un gran beneficio al usar Maven2, por lo que en realidad se equilibra.

Lo que hacemos, es que usamos Eclipse para desarrollar y solo usamos Maven para administrar las dependencias. Todo lo demás se hace ejecutando " mvn " en linea de comando Mantenemos las pruebas en sus propios proyectos de prueba de integración (...- itest) y tenemos un servidor de integración continuo para hacer compilación en 2 fases, primero compilar el código real, compilarse en segundo lugar y ejecutar los proyectos más inestables. (El primer paso (compilación pura) generalmente es muy rápido, y la compilación de pruebas de integración (con la ejecución de pruebas) generalmente toma bastante tiempo).

Aquí está la línea de comandos para hacer mvn ejecutar pruebas: mvn -o verificar -Ditest

Por supuesto, debe definir el perfil 'itest' en su pom padre: Diga, así:

<profiles>
  <profile>
    <id>integration-test</id>
    <activation>
      <property>
        <name>itest</name>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <executions>
            <execution>
              <id>itest</id>
            </execution>
          </executions>
          <configuration>
            <testSourceDirectory>src/main</testSourceDirectory>
            <testClassesDirectory>target/classes</testClassesDirectory>
            <forkMode>once</forkMode>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

He tenido bastante éxito al utilizar Eclipse + Ant con CruiseControl. Si desea automatización, probablemente necesitará algo más que Eclipse puro.

CruiseControl puede desproteger automáticamente una copia de su proyecto del control de código fuente, compilarlo, ejecutar pruebas y luego actualizar una aplicación web con los resultados. La última vez que lo usé fue bastante elegante, pero eso fue hace mucho tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top