我們在這裏有一個持續的需求,我無法弄清楚如何使用股票Maven 2工具和文檔來解決。有沒有辦法將長時間運行(例如壓力測試)分開,以便它們在Maven 2中默認不運行?
我們的一些開發人員有一些非常長時間運行的JUnit測試(通常是壓力測試),在任何情況下都不應該作爲構建過程/夜間構建的常規部分運行。
當然,我們可以使用萬無一失插件的排除機制,並從構建只是踢他們,但最好我們很樂意東西,使開發人員可以隨意通過Maven的運行它們2.
我們在這裏有一個持續的需求,我無法弄清楚如何使用股票Maven 2工具和文檔來解決。有沒有辦法將長時間運行(例如壓力測試)分開,以便它們在Maven 2中默認不運行?
我們的一些開發人員有一些非常長時間運行的JUnit測試(通常是壓力測試),在任何情況下都不應該作爲構建過程/夜間構建的常規部分運行。
當然,我們可以使用萬無一失插件的排除機制,並從構建只是踢他們,但最好我們很樂意東西,使開發人員可以隨意通過Maven的運行它們2.
通常你會添加一個配置文件來運行一組不同的測試你的Maven的配置:
與MVN -Pintegrationtest運行該安裝
<profile>
<id>integrationtest</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-client -Xmx896m -XX:MaxPermSize=192m</argLine>
<forkMode>once</forkMode>
<includes>
<include>**/**/*Test.java</include>
<include>**/**/*IntTest.java</include>
</includes>
<excludes>
<exclude>**/**/*SeleniumTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<activation>
<property>
<name>integrationtest</name>
</property>
</activation>
</profile>
使用一個集成測試插件如Super Helpful Integration Test Thingy分離的Integra (單元測試)(純粹主義者說所有真正的單元測試運行最多30秒)。爲您的單元測試和集成測試製作兩個Java包。
然後不與此插件相(正常Maven的生命週期),只有運行它時,它被明確地稱爲一個目標,就像這樣: mvn shitty:clean shitty:install shitty:test
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>shitty-maven-plugin</artifactId>
</plugin>
</plugins>
這樣,你的正常的開發不會受到影響,您可以根據需求運行集成測試。
另一個選擇是讓壓力測試檢測到它在maven中運行並且只運行一次或兩次。即變成常規功能測試。用這種方法你可以檢查代碼還是不錯的,但是不能長時間運行。
添加到krosenvold的答案,以確保沒有意外的行爲,請確保你也有一個默認的配置文件是默認激活該排除你想在你的特殊譜運行整合或stresstests。
<profile>
<id>normal</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/**/*IntTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
您需要創建這樣一個配置文件,只需列出萬無一失,插件配置文件將覆蓋輪廓之外是否應該有選擇:
mvn -P integrationtest clean install
聞起來有點像劈我。 – 2016-04-28 10:08:23