2011-09-07 27 views
19

Bu, JUnit4'te mümkün mü?JUnit4 tüm testleri bir testsuite kullanarak belirli bir pakette çalıştırın

JUnit3, ben aşağıdakileri:

(aslen Johannes Link tarafından geliştirilen)
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

Bunu junit4 ile çalıştırmayı denediniz mi? – bbaja42

+0

@ bbaja42 Bunu junit4 ile çalıştırmak istemiyorum, testlerim için junit4 ek açıklamalarını kullanmak ve hepsini bir testsuit kullanarak çalıştırmak istiyorum. – Fortega

+1

Bu soruya "gerçek" bir cevap güzel olurdu. Her nasılsa, Eclipse JUnit çalıştırma yapılandırma panelinde bir küçük onay kutusunu tıklatarak bunu başarabilir. – djangofan

cevap

17

The takari-cpsuite ihtiyaçlarınıza uygun gereken bir sınıf yolu-paketi sunuyor. Sanki normal ifadelerle Classpath sınıfların filtreleme sağlar:

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

Herhangi bir @ @ RunWith' ek açıklaması olmadan çalışır mı? – Dims

12

kullanabilirsiniz JUnitToolBox:

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

Maven yapılandırma:

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

fazla ayrıntı için https://code.google.com/p/junit-toolbox/ görüyoruz.

+0

Bunu denedim, ancak çalışmıyor "Taramayı başaramadım ..." hatasını almaya devam ediyorum. – SobiborTreblinka

+0

Yalnızca klasöründeki ve alt klasöründeki paketleri tarayabilir. Bu yüzden, bir AllTestSuite in com. Bu arada. Bu yapılandırma ("**/* Test.class") tüm test sınıflarınızın "Test" ile bittiğini varsayar. – borjab

+1

Test bir kavanozda paketlenmişse işe yaramaz. Bunu çözmek için açık bir talep var. https://code.google.com/p/junit-toolbox/issues/detail?id=2 – EstebanGarciaAlonso