5

Od pewnego czasu używam maven2 i hudson do ciągłej integracji, ale uważam, że Eclipse i Maven nie grają ze sobą dobrze. Pewnie, że istnieje wtyczka, ale jest marudna, by zepsuć projekt maven w coś, co lubi zaćmienie, a czasy budowy i test jednostkowy są zbyt długie. Rozważam powrót do projektu czystego zaćmienia, bez udziału mrówki i bez męża. Dzięki wtyczce infinitest i możliwemu agentowi JavaRebel dałoby mi bardzo szybki cykl testowy instalacji-wdrażania. Jednak nadal chciałbym mieć automat i testy, więc:Jak korzystać z ciągłej integracji z projektem Eclipse?

Jak korzystać z ciągłej integracji z projektem Eclipse?

Czy istnieje sposób wiersza polecenia, aby to zrobić?

Czy istnieje serwer kompilacji, który już obsługuje go natywnie?

Odpowiedz

2

Udało mi się znaleźć dobre rozwiązanie. Ja po prostu mam infinitest (może być zainstalowany z rynku Eclipse) do pracy przy użyciu Maven i Eclipse

W Eclipse-> projekt Ustawienia-> Jawa Budowanie Path-> Źródło odznacz pole o nazwie: „Allow wyjściowego foldery do źródła foldery "

Pozwoli to na to, aby twój projekt miał więcej niż jedną ścieżkę wyjściową, a Eclipse rozpocznie wtedy raportowanie klas testowych jako części ścieżki klasy. Infinitest znajdzie to i rozpocznie testy!

Wszystko zrobiłem było użyć oficjalnego wtyczki Maven Eclipse i dodać to do mojego 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> 
4

Taa, wtyczka Eclipse Maven2 to bzdura na razie. Ale proponuję, abyś tam powiesił się, jest wiele korzyści z używania Maven2, więc to faktycznie balansuje.

To, co robimy, polega na tym, że używamy Eclipse do rozwijania i używania Mavena tylko do zarządzania zależnościami. Wszystko inne jest wykonywane przez uruchomienie "mvn" w linii poleceń. Prowadzimy testy we własnych projektach testów integracyjnych (...- itest) i mamy ciągły serwer integracyjny do budowania w 2 fazach, najpierw budujemy właściwy kod, a drugi budujemy i uruchamiamy najlepsze projekty. (Pierwszy przebieg (czysta build) zwykle jest bardzo szybki, a testy integracyjne zbudować (z prowadzeniem testów) zwykle zajmuje sporo czasu.)

Oto wiersz poleceń, aby mvn testy Run: mvn -o verify -Ditest

Of Oczywiście trzeba zdefiniować „iTest” profil w pom nadrzędnej: Say, tak:

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

ciekawy pomysł, nie pomyślałem o podzielenie go na dwa projekty. Zazwyczaj jestem wielkim fanem maven, ale zauważyłem, że cykl budowania/testowania zajmuje trochę czasu. Ten pomysł może trochę przyspieszyć. –

0

miałem sprawiedliwego sukces przy użyciu Eclipse + Ant z Corector. Jeśli chcesz automatyzacji, prawdopodobnie będziesz potrzebować czegoś więcej niż tylko czystego Eclipse.

CruiseControl może automatycznie sprawdzić kopię projektu od kontroli źródła, zbudować go, uruchomić testy, a następnie zaktualizować aplikację internetową z wynikami. To było całkiem sprytne, gdy ostatnio go użyłem, ale to było dawno temu.

Powiązane problemy