我有一個包含多個模塊和一個常見父模塊的maven項目。在這個項目中,有一些單元測試和Junit一起運行,以及BDD Cucumber集成測試。我想運行兩個獨立的作業,一個運行所有單元測試,另一個運行BDD /集成測試。爲了做到這一點,我已經註解我BDD亞軍類有一個Junit的類別標註,像這樣:通過Maven運行Junit類別的黃瓜測試
@RunWith(Cucumber.class)
@CucumberOptions(
tags = { "@ATagToBeRun", "[email protected]","[email protected]" },
dryRun = false, strict = true,
features = "src/test/resources/cucumber/testing",
glue = { "com.some.company.test",
"com.some.company.another.test"})
@Category(value = IntegrationTest.class)
public class FlowExecutionPojoTest {
}
我創建父pom
Maven的配置文件,它使用maven-surefire-plugin
功能,是爲了在過濾試驗基地組。這裏是我的Maven配置:
<dependencies>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<profile>
<id>testJewels</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>../my-module</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<groups>com.some.company.IntegrationTest</groups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
我希望那是什麼,當我運行mvn test -PtestJewels
與包含在<groups>
標籤類別註釋的類應該執行。實際上沒有任何註釋類被執行。
值得注意的一點是,當我使用maven-surefire-plugin
版本2.18這個工作,但從版本2.18.1,並沒有。按照documentation在頁面的底部,有在被繼承類關於版本2.18.1但在我的情況下,他們在
你能分享你的pom依賴嗎? cucumber-java,cucumber-junit軟件包? – eg04lt3r
@ eg04lt3r確定的事情,將其添加到問題 – Jewels