2013-04-25 37 views
2

我將外部junit.framework.TestSuite集成到使用Maven和JUnit4構建的我的庫中。典型的測試,如果不是全部,都會使用JUnit4註釋來啓動。如何將junit.framework.TestSuite合併到這個現有的測試代碼庫中?在JUnit4和Maven中運行TestSuite

這是我迄今爲止嘗試:

public class JSR330Tck { 
    @Test 
    public junit.framework.Test suite(){ 
     Car car = Factories.get(CarFactory.class).buildCar(); 
     return Tck.testsFor(car, false, true); 
    } 
} 

或用靜態方法suite()定義它:

public class JSR330Tck { 
    public static junit.framework.Test suite(){ 
     Car car = Factories.get(CarFactory.class).buildCar(); 
     return Tck.testsFor(car, false, true); 
    } 
} 

的這些都沒有通過的Maven Surefire插件觸發。

+0

這些文件位於哪裏? pom文件是怎樣的? – khmarbaise 2013-04-25 06:13:44

+0

這些文件位於src/test/java目錄中,並且pom.xml如下所示:https://github.com/johncarl81/transfuse/blob/master/transfuse/pom.xml – 2013-04-25 14:13:42

+0

請參閱[Inclusions和測試排除](http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html)。您的測試類名稱模式與Surefire不匹配。 – 2013-04-26 08:54:06

回答

1

我假設你的測試類不是基於在關係測試的命名約定與maven-surefire-plugin

includes> 
<include>**/*Test*.java</include> 
<include>**/*Test.java</include> 
<include>**/*TestCase.java</include> 
</includes> 

除此之外你不應該使用測試套件命名,引起神火,插件將處理已經。所以通常不需要單獨定義套件。

+0

我希望我可以避免使用TestSuites,但我正在集成第三方測試工具包。我會嘗試重新命名我的測試類,看看是否有效。 – 2013-04-26 18:59:26

+0

命名類JSR330TckTest的工作方式,只要我將該方法定義爲static並將其命名爲suite()。謝謝。 – 2013-04-26 19:16:50

+0

junit 3.8的測試套件功能是我知道動態生成測試用例的唯一方法。例如,商務人員在文件夾中提供輸入和輸出,並且需要對這些文件夾中的每一個進行測試運行 – djeikyb 2016-02-08 17:04:32