我有以下项目结构:
MyProject
--src
--test
--acceptance
--step_definitions
--features
--unit
我希望能够在 Maven 中与在 test/unit 中声明的单元测试分开运行我的 cucumber 测试(在测试/验收中),以便它们可以在不同的 CI 构建计划等中运行。我正在使用 cucumber-junit 所以每个验收测试的“运行程序”都是用 JUnit 编写的。
这可能吗?
最佳答案
Is this possible?
是的,有可能。我相信您应该将您的单元与验收/集成测试分开:
略修改文件夹结构对于这两个,将您的集成测试文件放在 standard location的
src/it
:MyProject/
src/main/java/
(SUT) src/test/
(单元测试代码)java/
resources/
src/it/
(验收/集成测试)java/
(步骤定义)resources/
(功能文件)此外,根据设计,不同的 Maven 插件 用于单元和集成测试:
maven-surefire-plugin
maven-failsafe-plugin
您还必须 bind execution of
maven-failsafe-pulgin
.要单独运行集成测试,您可以定义一个新配置文件:<profiles>
<profile>
<id>acceptance-tests</id>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
您还需要 configure the plugin to search
src/it
测试用例的目录树。验收测试可以在之后使用:
mvn clean verify -Pacceptance-tests
如需完整示例,我建议您关注 http://www.weblogism.com/item/334/integration-tests-with-cucumber-jvm-selenium-and-maven
关于maven - 如何为运行(Cucumber)验收测试指定一个单独的 Maven 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18164579/