2009-12-07 7 views
10

Zaskoczyło mnie, że nie znalazłem dotychczasowej odpowiedzi. Jeśli brakuje mi czegoś podstawowego, z przyjemnością się o tym dowiem.Aktualizacja do JUnit4 i kontynuowanie starszych testów JUnit 3 i zestawów testów poprzez ich wspólną współpracę

Istnieje duża starsza podstawa kodu, która została uaktualniona do wersji Java 6 (z wersji 1.4). Duża liczba testów JUnit 3 jest obecna w kodzie i jest zorganizowana w pakiet testowy, który działa poprawnie z domyślnym programem JUnit 4 w środowisku Eclipse.

Teraz dodałem nowe testy, które są czystymi testami JUnit 4 (adnotacje, brak TestCase itp.). Jaki byłby sposób na uruchomienie zarówno starego zestawu testów JUnit 3, jak i nowych testów JUnit 4?

+0

Chciałbym odpowiedzieć, że robimy to za pomocą AntTask, ale myślę, że masz na myśli tylko Eclipse. Jeśli tak, oznacz to jako Zaćmienie. – shoover

+1

@shoover - Nie, nie mam na myśli wyłącznie Eclipse. Szukam ogólnego rozwiązania, które uruchamiałoby testy tylko z java. – topchef

Odpowiedz

12

Po prostu użyj testera "JUnit4" w konfiguracji uruchamiania.

Pliki binarne JUnit4 mają warstwę kompatybilności wstecznej, która pozwala na posiadanie klas stylu JUnit3 i JUnit4 w tym samym pakiecie testów.

Do kompilacji linii poleceń wystarczy użyć JUnit4 zamiast JUnit3.

Dokonano tego specjalnie, aby ułatwić migrację, którą teraz wykonujesz.

Działa również dobrze w moim projekcie.

+0

Alex, dziękuję, ale szukałem bardziej konkretnego rozwiązania - dzięki odpowiedzi jestem pewien, że wymyśliłem jeden. Dodam to jako odpowiedź i dam ci za to kredyt. – topchef

+0

Czy możesz sprawdzić ten problem? Nie jestem pewien, jak "skonfigurować" Junit4 vs Junit3. (Tutaj) [problem dotyczy [http://stackoverflow.com/q/26848673/668650]. –

9

@RunWith (Suite.class) daje mi możliwość połączenia zarówno JUnit 4 i JUnit 3 testy i przypadków testowych ze sobą:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    ExampleOfJunit3TestSuite.class, 
    ExampleOfJUnit3TestCase.class, 
    ExampleOfJUnit4TestSuite.class, 
    ExampleOfJUnit4TestCase.class}) 
public class BothJUnit4and3TestSuite { 
} 

W BothJUnit4and3TestSuite uruchamia wszystkie testy i zestawy testów wymienionych w @ Suite.SuiteClasses.

Powiązane problemy