Domanda

Ho usato maven2 e hudson per un po 'di tempo per fare la mia continua integrazione, ma trovo che Eclipse e Maven non suonino bene insieme. Sicuramente c'è un plugin, ma è irremovibile trasformare il progetto Maven in qualcosa che piace all'eclissi e che i tempi di costruzione e il test unitario sono troppo lunghi. Sto pensando di tornare a un progetto di eclissi pura senza formica e senza maven. Con il plugin infinito e possibile l'agente JavaRebel, mi darebbe un ciclo di test build-deploy-test molto veloce. Tuttavia, mi piacerebbe comunque avere anche i test automatici e, quindi:

Come posso usare l'integrazione continua con un progetto Eclipse?

Esiste un modo da riga di comando per farlo?

Esiste un server di build che lo supporta già in modo nativo?

È stato utile?

Soluzione 2

Sono riuscito a trovare una buona soluzione. Ho semplicemente ottenuto l'infinito (può essere installato dal mercato Eclipse) per funzionare quando utilizzo maven ed eclipse

In Eclipse- > Project Properties- > Java Build Path- > Source deseleziona la casella chiamata: " Consenti output cartelle per cartelle di origine "

Ciò consentirà al progetto di avere più di un percorso di output e Eclipse inizierà quindi a segnalare le classi di test come parte del percorso di classe. Infinitest ora lo trova e inizia a eseguire i test!

Tutto quello che ho fatto è stato utilizzare il plugin Maven Eclipse ufficiale e aggiungerlo al mio 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>

Altri suggerimenti

Sì, per ora il plugin Eclipse Maven2 è una schifezza. Ma ti suggerirei di restare lì dentro, ci sono molti vantaggi nell'usare Maven2, quindi in realtà si equilibra.

Quello che facciamo è usare Eclipse per sviluppare e usare Maven solo per gestire le dipendenze. Tutto il resto viene eseguito eseguendo " mvn " dalla riga di comando. Manteniamo i test nei loro progetti di test di integrazione (...- itest) e disponiamo di un server di integrazione continua per eseguire la compilazione in 2 fasi, creare prima il codice effettivo e compilare il secondo passaggio ed eseguire i progetti -itest. (Il primo passaggio (build pura) di solito è molto rapido e la compilazione dei test di integrazione (con l'esecuzione dei test) richiede in genere un po 'di tempo.)

Ecco la riga di comando per eseguire mvn test: mvn -o verifica -Ditest

Ovviamente devi definire il profilo 'itest' nel tuo pom genitore: Di 'così:

<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>

Ho avuto un discreto successo usando Eclipse + Ant con CruiseControl. Se vuoi l'automazione, probabilmente avrai bisogno di qualcosa di più di un semplice Eclipse.

CruiseControl può estrarre automaticamente una copia del progetto dal controllo del codice sorgente, crearlo, eseguire test e quindi aggiornare un'applicazione Web con i risultati. L'ultima volta che l'ho usato è stato molto elegante, ma è stato tanto tempo fa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top