2012-07-09 46 views
3

我使用Junit 4.8和maven 3, 我有可以並行執行的測試,但其他不能因爲它訪問Oracle數據庫。 我想使用Junit類別來指示可以「並行化」和其他的測試,並通過使用簡單的「mvn測試」來啓動測試。這可能嗎? 我的Maven配置會是這樣的,我認爲:執行基於JUnit類別的並行測試

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12</version> 
    <configuration> 
    <groups>com.soft.Parallelizable</groups> 
    <perCoreThreadCount>false</perCoreThreadCount> 
    <forkMode>perthread</forkMode> 
    <argLine>-Xms512m -Xmx512m</argLine> 
    <parallel>classes</parallel> 
    <threadCount>30</threadCount> 
    </configuration> 
    <configuration> 
    <groups>com.soft.NotParallelizable</groups> 
    </configuration> 
    </plugin> 

當然這是行不通的,但它只是告訴你什麼是我想要做的。 如果有人有一個想法:)

+2

Maven的萬無一失負責單元測試應該始終能夠與r沒有並行化,因爲maven-failsafe插件負責的集成測試可能會並行化。聽起來你正在混合單元和集成測試。 – khmarbaise 2012-07-09 14:12:54

+0

一個很好的用例可能是同時測試DAO對象,同時讓其他測試模擬DAO的並行運行。我也會對這個問題的解決方案感興趣。 – JBCP 2013-03-06 21:57:27

回答

0

後2.18版有此選項:

由於神火2.18,你可以應用JCIP註釋 @ net.jcip.annotations.NotThreadSafe

您可以閱讀here
它爲我工作