2010-09-03 80 views
4

我有,我現在用的組件插件Maven項目。 我通常會先創建我的神器: MVN清潔驗證組件:裝配 (我有我想單獨對單元測試運行的集成測試)。Maven的組裝插件導致測試運行兩次

當該運行時,組件插件運行單元測試本身。 這會導致它們運行兩次。

有沒有一種方法,我可以告訴Assembly插件不運行測試? 我很想分兩步運行此: 1. MVN清潔驗證 2.如果前一個命令成功,運行mvn組裝:組裝-DskipTests =真

然而,這是一個有點笨拙,寧願單命令。

感謝, 史蒂芬

回答

2

在運行此,大會插件運行單元測試本身。這會導致它們運行兩次。

assembly:assembly目標調用的生命週期階段包的執行執行本身和命令行從而將調用任何phase之前package上運行它之前。這包括test階段。

有沒有辦法告訴程序集插件不要運行測試?

號我的建議是,而不是創建組件的部分的構建生命週期調用命令行即​​在插件結合它在一個特定的相組成。例如:

<project> 
... 
<build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.2-beta-5</version> 
     <executions> 
      <execution> 
      <id>create-my-assembly</id> 
      <phase>package</phase><!-- change this if not appropriate --> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       ... 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

如果你不希望在以後的階段(例如post-integration-testverify)如果您的集成測試失敗要創建的組件,然後將其綁定。

如果你不希望大會能夠系統地創建做,把上面的配置在配置文件中。

+0

嗨,我已經有程序集自動運行包(階段設置爲包)。 然而,它只是和運行單元測試本身,甚至只是在運行時:MVN清潔套裝 所以通過測試階段,通常的變速運行的第一套單元測試,然後組裝的綁定到封裝階段運行單位再次測試。 – Steven 2010-09-03 06:27:09

+0

@Steven如果你綁定了正確的目標,即「單一」,那不是。我懷疑你只是在命令行上綁定了'assembly'。 – 2010-09-03 06:40:20

+0

我正在使用附加的目標。這是爲了在發佈期間將其上傳到我的存儲庫。我在使用附加的目標之前嘗試使用構建輔助插件來附加構件,但它抱怨具有相同ID的構件(或者類似的奇怪東西)。 稍後我會再有單一目標。謝謝 – Steven 2010-09-04 08:34:28