2016-04-05 36 views
5

Robiłem dużo pracy w przeszłości pisanie testy jednostkowe, które działają w „konwencjonalnych” Maven buduje, Korzystanie JUnit i Mockito (i PowerMock). Pracuję teraz nad kodem wtyczki Eclipse, który kompiluje się z Maven Tycho.Jak uzyskać testy jednostkowe do uruchomienia w wersji Maven Tycho?

Ogólnie rzecz biorąc, jest to projekt wielorodzinny, ale ja tylko dodam testów jednostkowych do jednego z projektów wtyczek (na razie).

Słyszałem tycho-surefire, ale to wydaje się dość skomplikowane, a to naprawdę brzmi bardziej jak obsługuje testy integracyjne zamiast testy jednostkowe. Zgaduję, że prawdopodobnie nie będę miał innego wyboru, jak tylko z tego skorzystać, ale do tej pory nie próbowałem go zintegrować.

Próbowałem coraz JUnit i Mockito artefakty z Maven, a następnie za pomocą „Maven zależność-plugin”, aby dostać się artefakty dostępne odwoływać w „Bundle-Classpath” własność manifeście.

Kiedy uruchomić kompilacji, tycho-compiler-plugin widzę to kompilacji 105 źródło plików, który zawiera wszystkie klasy w src/main/java i src/test/java. To nie compile klasę testową, ponieważ nie może znaleźć Mockito klas, chociaż kiedy uruchomić kompilację z -X, pokazuje mockito-all artefakt w zależności drzewa.

Co mogę tutaj zrobić?

Odpowiedz

-1

Trzeba użyć JUnit i Mockito jak OSGi wiązek

Myślę, że to pytanie odpowiedział szczegółowe here

Mam nadzieję, że to pomaga.

+0

Właściwie nie. Nie musisz "iść" przez to piekło. To tylko kolejna, bardziej skomplikowana opcja. Zobacz moją odpowiedź – Alex

0

Po bardzo bolesnym błędzie Maven próbowałem przez , co stanowi zaskakująco łatwy sposób na wykorzystanie testów jednostkowych w konfiguracji maven-teno. Tutaj ważne części pom.xml podczas korzystania JUnit (prawdopodobnie wygląda podobnie do Mockito):

<testSourceDirectory>src/test/java</testSourceDirectory> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12.4</version> 
    <executions> 
     <execution> 
     <id>test</id> 
     <phase>test</phase> 
     <configuration> 
      <includes> 
      <include>**/*Test.java</include> 
      </includes> 
     </configuration> 
     <goals> 
      <goal>test</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.5.1</version> 
    <executions> 
     <execution> 
     <id>compiletests</id> 
     <phase>test-compile</phase> 
     <goals> 
      <goal>testCompile</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

Imię wszystkie testy w taki sposób, że kończy się „* Test.java”. Uruchom mvn test, aby wykonać wszystkie dostępne testy jednostkowe.