既然可以配置maven surefire在一個版本中執行jUnit測試和testNG測試。我不會詳細說明爲什麼我這麼做(ok,提示:testNG是我們的標準框架,但是像jnario這樣的框架需要jUnit)。如何讓maven surefire正確執行JUnit和TestNG測試?
一般的方式做到這一點是配置萬無一失插件這樣的:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${surefire.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
</plugin>
這工作得很好,JUnit測試和TestNG測試得到執行。
但是 - 現在我看到testNG也嘗試執行jUnit測試(可能反之亦然) - 當然沒有成功,因爲它不會看到它的任何註釋,但它看起來像它重新將測試標記爲「通過」...無論如何,除非我評論第二個依賴關係條目,否則某些報告工具不會在jUnit測試中顯示測試失敗。
有沒有更好的方法來配置surefire,以便兩個框架的測試只能由他們的測試運行者執行?
交叉發佈在Maven-Users-List上:http://maven.40175.n5.nabble。com/maven-surefire-selecting-providers-td5764817.html –