maven故障保护插件
我尝试使用mvn故障保护插件仅运行selenium测试。我创建了一个单独的概要文件,只运行selenium测试,但mvn无法找到它们。我的项目结构看起来像maven故障保护插件,maven,selenium,maven-failsafe-plugin,Maven,Selenium,Maven Failsafe Plugin,我尝试使用mvn故障保护插件仅运行selenium测试。我创建了一个单独的概要文件,只运行selenium测试,但mvn无法找到它们。我的项目结构看起来像 moduleA scr/main/... src/test/integration/java/... scr/test/unit/java/... moduleB scr/main/... src/test/integration/java/... scr/test/unit/java/... module
moduleA
scr/main/...
src/test/integration/java/...
scr/test/unit/java/...
moduleB
scr/main/...
src/test/integration/java/...
scr/test/unit/java/...
moduleC (only for selenium tests)
scr/main/java/com/selenium/A.java
src/test/java/...
因为我在moduleA和B中为单元测试和集成测试创建了新的目录。我在pom.xml(listingB)中定义了以下内容,以便让Maven了解其他测试目录。到目前为止还不错,但当我在moduleC中添加selenium测试时,我只想运行selenium,而不是运行selenium测试。我创建了一个新的概要文件(listingA)来运行selenium测试。感谢您的帮助
列表a:
硒
org.apache.maven.plugins
maven故障保护插件
验证
集成测试
验证
**/selenium/*.java
org.apache.maven.plugins
maven surefire插件
真的
列表b:
org.codehaus.mojo
构建助手maven插件
1.7
添加测试源
生成测试源
添加测试源
${basedir}/src/test/unit/java
${basedir}/src/test/integration/java
${basedir}/src/test/common/java
添加测试资源
生成测试资源
添加测试资源
${basedir}/src/test/integration/resources
${basedir}/src/test/unit/resources
${basedir}/src/test/common/resources
我想到的第一件事是,为什么要使用不同的文件夹来分离单元测试和集成测试,因为在Maven中,单元测试和集成测试之间的分离是通过命名约定来完成的
单元测试必须命名为
**/Test*.java
**/*Test.java
**/*TestCase.java
集成测试必须命名为:
**/IT*.java
**/*IT.java
**/*ITCase.java
这意味着您可以将集成测试和单元测试放在同一个文件夹中,该文件夹是src/test/java,没有任何问题。集成测试的执行不受此影响
如果你愿意打电话
mvn clean package
将只运行单元测试。如果还需要运行集成测试,只需使用:
mvn verify
如果不想跳过单元测试,可以使用以下方法:
mvn-DskipTests=真验证
对于您创建的单独的selenium模块,最好的解决方案是使用适当的命名约定将集成测试放入通常的文件夹src/test/java
您可能会遇到的问题是,如果您的集成测试需要一些特殊的资源,您可能会将这些集成测试移动到单独的模块中,而只使用集成测试
src/test/java
文件夹中,请从列表中的maven故障保护插件的配置中删除
参数
**/IT*.java
**/*IT.java
**/*ITCase.java
**/Test*.java
**/*Test.java
**/*TestCase.java
(正如khmarbaise所建议的那样) **/IT*.java
**/*IT.java
**/*ITCase.java
**/Test*.java
**/*Test.java
**/*TestCase.java
因为这将使它们按照您的计划在测试fase中运行,而不是在集成测试fase中运行我有一个与您类似的配置,它可以正常工作。请告诉我们您为尝试运行Selenium测试而执行的Maven命令好吗?我已将Selenium测试放在单独模块中的常用文件夹src/test/java中,但问题是,当我使用新配置文件运行时,Maven没有识别此文件夹。它不会在这个新模块中运行任何测试。您不应该使用概要文件来完成这些事情,因为maven有一个集成测试的生命周期阶段。