2017-04-18 201 views
5

請參考以下鏈接 - GitHub discussion on how to separate Integration Tests and Unit Tests如何使集成測試和單元測試通過maven單獨運行?

結果,我想這一點 -

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <configuration> 
      <includes> 
      <include>**/*Tests.java</include> 
      <include>**/*Test.java</include> 
      </includes> 
      <excludes> 
      <exclude>**/Abstract*.java</exclude> 
      <exclude>**/IT*.java</exclude> 
      <exclude>**/*IT.java</exclude> 
      <exclude>**/*ITCase.java</exclude> 
      <exclude>**/*IntegrationTest.java</exclude> 
      </excludes> 
     </configuration> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
      <configuration> 
       <includes> 
       <include>**/IT*.java</include> 
       <include>**/*IT.java</include> 
       <include>**/*ITCase.java</include> 
       <include>**/*IntegrationTest.java</include> 
       </includes> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 

這是工作好到一定程度。意思是,surefire不執行集成測試,Failsafe不執行單元測試。

但是,當我運行時,mvn verifymvn integration-test,也使用確定的插件。


必需結果:運行mvn integration-test時,不應運行單元測試。


的下面三個圖像是用於mvn verify

集成測試:

Integration Test

Tests Run

單元測試:

Unit Test

下面的圖片是當我跑mvn test

Unit Tests

+0

按照默認命名架構和不添加幾個包括/排除等導致maven-surefire-plugin和maven-failsafe-plugin的默認工作正常... ...公約nfiguration是pardigm ...所以只需要配置一些東西,如果你真的需要的話。否則保持默認值。 – khmarbaise

+0

[FailSafe命名約定](https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html)。除非你提到,否則我不知道它存在。 –

+0

@khmarbaise但是,sunfire是否排除了故障安全插件的默認值? –

回答

1

兩個目標verifyintegration-testmaven-failsafe-plugin運行集成測試用例定義的萬無一失。這裏事情按預期工作,並按照提供的準則工作。請參考link 瞭解更多詳情:

+0

這是真的。謝謝。但是,這並沒有真正解決我的核心問題。 –