2011-09-07 14 views
19

Czy jest to możliwe w JUnit4?JUnit4 uruchom wszystkie testy w określonej paczce, używając zestawu testowego

W JUnit3, chciałbym wykonać następujące czynności:

public class MyTestSuite { 

    public static Test suite() throws Exception { 
    doBeforeActions(); 

    try { 
     TestSuite testSuite = new TestSuite(); 
     for(Class clazz : getAllClassesInPackage("com.mypackage")){ 
      testSuite.addTestSuite(clazz); 
     } 
     return testSuite; 
    } finally { 
     doAfterActions 
    } 
    } 

... 

} 
+0

Czy próbowałeś go uruchomić z junit4? – bbaja42

+0

@ bbaja42 Nie chcę tego uruchamiać z junit4, chcę używać adnotacji junit4 do moich testów i uruchamiać je wszystkie za pomocą zestawu testowego. – Fortega

+1

"Faktyczna" odpowiedź na to pytanie byłaby miła. W jakiś sposób Eclipse może to zrobić, klikając jedno małe pole wyboru w panelu konfiguracji JUnit. – djangofan

Odpowiedz

17

The takari-cpsuite (pierwotnie opracowany przez Johannes Link) oferuje ścieżkę klasy-suite, który powinien pasować do Twoich potrzeb. Umożliwia filtrowanie klas w ścieżce klasy wyrażeń regularnych takich jak:

import org.junit.extensions.cpsuite.ClasspathSuite.*; 
... 
@ClassnameFilters({"mytests.*", ".*Test"}) 
public class MySuite... 
+0

Czy to działa bez adnotacji '@ RunWith'? – Dims

12

Można wykorzystać JUnitToolBox:

@RunWith(WildcardPatternSuite.class) 
@SuiteClasses("**/*Test.class") 
public class MySuite { 
} 

Maven config:

<dependency> 
<groupId>com.googlecode.junit-toolbox</groupId> 
<artifactId>junit-toolbox</artifactId> 
<version>1.5</version> 
</dependency> 

zobaczyć https://code.google.com/p/junit-toolbox/ więcej szczegółów.

+0

Próbowałem tego, ale nie działa, ciągle otrzymuję komunikat "nie udało się skanować ...". – SobiborTreblinka

+0

Może skanować tylko paczki w swoim folderze i podfolderze. Musisz więc stworzyć AllTestSuite w com. [YourCompany]. Przy okazji. Ta konfiguracja ("**/* Test.class") zakłada, że ​​wszystkie twoje klasy testowe kończą się na "Test". – borjab

+1

Uwaga: nie działa, jeśli test jest spakowany w słoiku. Istnieje otwarta prośba o rozwiązanie tego problemu. https://code.google.com/p/junit-toolbox/issues/detail?id=2 – EstebanGarciaAlonso

Powiązane problemy