maven配置testng_TestNG和Maven配置指南
maven配置testng
為了有用,自動(dòng)測(cè)試應(yīng)該運(yùn)行得非??臁?否則,將不會(huì)在開發(fā)期間經(jīng)常運(yùn)行,甚至在開發(fā)人員工作站上的默認(rèn)配置中將被忽略。 最簡(jiǎn)單的規(guī)則是只編寫小型單元測(cè)試,該測(cè)試將模擬給定類的鄰居。 然而,有時(shí)在IoC容器上下文(Spring,CDI,Guice)或使用嵌入式數(shù)據(jù)庫(kù)(H2,HyperSQL,Derby)中進(jìn)行測(cè)試是有用的/必需的。 不幸的是,即使是這種類型的測(cè)試,也可能顯著增加總體測(cè)試執(zhí)行時(shí)間。 我在一個(gè)項(xiàng)目中遇到這種情況,并且為了避免使用skipTests標(biāo)志,我使用了TestNG和Maven Surefire插件中的組開發(fā)了一種解決方案。測(cè)試分為三組:
- 非??焖俚恼鎸?shí)單元測(cè)試(默認(rèn)情況下全部為)–在開發(fā)過程中應(yīng)經(jīng)常運(yùn)行(通過IDE或通過mvn測(cè)試,mvn軟件包)
- 集成速度較慢,但??自給自足的測(cè)試(設(shè)置Spring上下文和/或使用嵌入式H2數(shù)據(jù)庫(kù))–至少應(yīng)在提交/推送之前或在給定部件上運(yùn)行時(shí)運(yùn)行(通過IDE或通過mvn集成測(cè)試,mvn安裝)
- 真正的集成測(cè)試(需要訪問遠(yuǎn)程服務(wù)器,例如測(cè)試Web服務(wù)或REST),應(yīng)每天由CI服務(wù)器或從事集成工作的開發(fā)人員運(yùn)行(mvn安裝,mvn集成測(cè)試并啟用其他配置文件)
為了實(shí)現(xiàn)給定的測(cè)試(或測(cè)試類),必須將其標(biāo)記為“自集成”或“集成”(在方法或類級(jí)別):
@Test(groups = "self-integration") public void shouldInitializeChainedAppInfoProperly() {@Test(groups = "integration") public class FancyWebServiceIntegrationTest {Maven Surefire插件應(yīng)配置為從默認(rèn)執(zhí)行中排除“自集成”和“集成”測(cè)試組,并在“集成測(cè)試階段”添加“自集成”:
<build><plugins>(...)<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${ver.surefire-plugin}</version><executions><execution><id>default-test</id> <!-- to override default configuration - in fact: unit tests --><configuration><excludedGroups>self-integration,integration</excludedGroups></configuration></execution><execution><id>self-integration</id><phase>integration-test</phase><goals><goal>test</goal></goals><configuration><groups>self-integration</groups><reportsDirectory>target/self-integration-surefire-reports/</reportsDirectory></configuration></execution></executions></plugin></plugins></build>另外(如果需要),可以創(chuàng)建在“集成測(cè)試”階段配置的帶有“集成”測(cè)試組的單獨(dú)的單獨(dú)配置文件。
<profiles>(...)<profile><id>integration</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${ver.surefire-plugin}</version><executions><execution><id>integration</id><phase>integration-test</phase><goals><goal>test</goal></goals><configuration><groups>integration</groups><reportsDirectory>target/integration-surefire-reports/</reportsDirectory></configuration></execution></executions></plugin></plugins></build></profile></profiles>可以在AppInfo的人工分支(pom.xml和示例測(cè)試類)中找到工作示例。 根據(jù)您的需要很容易采用它。
所有三個(gè)測(cè)試組都有單獨(dú)的報(bào)告格式,以免彼此覆蓋。 作為擴(kuò)展,可能可以將它們合并到一個(gè)匯總的測(cè)試報(bào)告中。
參考: 跑得快單元測(cè)試的時(shí)候,慢整合很少- TestNG的和Maven配置指南從我們JCG伙伴馬爾欽Zajaczkowski在固態(tài)軟博客。
翻譯自: https://www.javacodegeeks.com/2012/04/testng-and-maven-configuration-guide.html
maven配置testng
總結(jié)
以上是生活随笔為你收集整理的maven配置testng_TestNG和Maven配置指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主板型号怎么看如何查询电脑主板型号
- 下一篇: 怎么看自家路由器帐号和密码如何知道自家路