如何解决Maven 没有使用 mvn clean verify 运行黄瓜测试
我有一个单模块 Maven 应用程序,但 mvn clean verify
只会在 domain
下运行测试,而不是在以下测试包结构中的 acceptance
下运行:
com-> x -> acceptance -> AcceptanceTests.java
com-> x -> domain -> <REST_OF_TESTS>
换句话说,mvn clean verify
只运行 <REST_OF_TESTS>
。
这是我的 AcceptanceTests.java
,它在 IntelliJ IDEA 中完美运行:
package com.x.acceptance;
import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources",plugin = {"pretty"})
public class AcceptanceTests { }
我的最终目标是在 Makefile 级别使用 mvn clean verify
从终端运行所有测试,但不会运行 Cucumber 测试。你能帮忙吗?
谢谢。
解决方法
在使用 mvn verify
时使用 Failsafe 并且测试名称应遵循以下约定:
https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html 测试的包含和排除
默认情况下,Failsafe Plugin 会自动包含所有测试 具有以下通配符模式的类:
"**/IT*.java" - includes all of its subdirectories and all Java filenames that start with "IT".
"**/*IT.java" - includes all of its subdirectories and all Java filenames that end with "IT".
"**/*ITCase.java" - includes all of its subdirectories and all Java filenames that end with "ITCase".
如果测试类不遵循任何这些命名约定, 然后配置Failsafe Plugin并指定你想要的测试 包括。
使用 mvn test
时使用 Surefire,测试名称应遵循以下约定:
https://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html 测试的包含和排除
默认情况下,Surefire 插件会自动包含所有测试 具有以下通配符模式的类:
"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".
如果测试类不遵循任何这些命名约定, 然后配置 Surefire Plugin 并指定你想要的测试 包括。
所以请非常仔细阅读你的班级名称。 如果这没有帮助,请尝试本教程并找出与您的项目的差异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。