2016-06-08 64 views
0

我用來創建動態的JUnit測試套件的解決方案可以在這個類似的問題在這裏找到:How do I Dynamically create a Test Suite in JUnit 4?動態地從屬性創建JUnit4測試套件文件

我試圖適應看起來像這樣的解決方案:

@RunWith(AllTests.class) 
public class SomeTests 
{ 
    public static TestSuite suite() 
    { 
     TestSuite suite = new TestSuite(); 

     suite.addTest(new JUnit4TestAdapter(Test1.class)); 
     suite.addTest(new JUnit4TestAdapter(Test2.class)); 

     return suite; 
    } 
} 

但是,我不僅希望能夠動態地創建一個測試套件,而且還能夠允許運行我的程序的用戶指定他們想使用屬性文件運行哪些測試。

有沒有一種方法,我可以註釋我的類與字符串,這樣我可以得到實際的類類型給定的註釋字符串?是否有任何可行的解決方案,或者這只是不好的做法?

+0

你想實現類似[JUnit Categories](https://github.com/junit-team/junit4/wiki/Categories)的東西,或者像[Maven test](http:// maven。 apache.org/surefire/maven-surefire-plugin/examples/single-test.html),你可以通過'-Dtest = NameOfTestClass,NameOfOtherTestClass'甚至是'-Dtest = NameOfTestClass#testMethod + othertestMethod'來指定什麼測試類或方法應該執行? –

回答

0

據我所知,您希望將您的測試類標記爲屬於一個或多個組,然後用戶定義要執行的測試用例組。這是對的嗎?

這個做法不好還是不錯,它已經在TestNG中實現了。 JUnit中沒有這樣的功能。但是,您可以輕鬆地將註釋掃描程序添加到您的代碼中,並動態選擇適當的測試類(例如,使用https://github.com/ronmamo/reflections僅使用一行代碼就可以在類路徑中收集所有註釋的測試)。

+1

正如Roman所指出的,JUnit確實有這個功能。您甚至可以從JUnit 4.12開始指定在命令行中包含哪些類別 – NamshubWriter