当前位置: 首页 > 知识库问答 >
问题:

Maven故障保险:遵循指南,但不运行在"验证"

须原
2023-03-14

我试图让Maven failsafe插件运行我的集成测试,但即使我在https://maven.apache.org/surefire/maven-failsafe-plugin/usage.html它不起作用。

我的maven项目(MvnTest)如下所示(源文件如下所示):

pom.xml
-src
  -main
    -java
    -resources
 -test
  -java
    SomeIT.java
    SomeTest.java

MVN测试仅使用sunfire插件正确运行某些est.java中的测试。输出:

...
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ MvnTest ---
[INFO] Surefire report directory: ...
...
Running SomeTest
Tests run: 1, Failures: 1

然而,mvn验证命令输出与mvn测试完全相同的东西,这在两个方面是错误的: 1)它调用sunfire,2)它在某些est.java中运行测试,但应该只在某些. java中运行测试(https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html)

我相信我已经遵循了正确使用故障保护的指南,但显然我肯定错过了什么。我做错了什么?

源文件

波姆。xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>MvnTest</groupId>
    <artifactId>MvnTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.16</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
</project>

java:

import org.junit.Test;
import static org.junit.Assert.assertTrue;

public class SomeIT {
    @Test
    public void test2() {
        assertTrue(4 == 3);
    }
}

est.java:

import org.junit.Test;
import static org.junit.Assert.assertTrue;

public class SomeTest {
    @Test
    public void test1() {
        assertTrue(2 == 3);
    }
}

共有1个答案

厉永宁
2023-03-14

在你的pom.xml中添加包含部分

看起来像:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.16</version>
            <configuration>
                <includes>
                    <include>**/*IT.java</include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
 类似资料:
  • 我在FUSE ESB中公开了一个CXF webservice。在出现异常的情况下,应用程序将抛出SOAP错误,响应在SOAP UI中如下所示。如何避免/删除响应中的classContext标记。

  • **构建失败** 安装build/build/products/debug-iphonesimulator/rn_demo.app处理命令时遇到错误(Domain=nsposixerrordomain,code=2):安装请求的应用程序失败,在提供的路径上找不到应用程序包。提供到所需应用程序包的有效路径。打印:条目“:cfbundleidentifier”不存在 命令失败:/usr/libexec

  • 在我的项目中,我创建了以下目录结构 在我的pom.xml我做了以下记录 如果我复制src中的资源- 如何使联调也将资源中的文件复制到目标中?

  • 完整的pom.xml 如果我通过IDEA runner(TestNG config)运行project-一切都100%正常。我不知道为什么mvn builder在某个时候不想执行configfactory.create()并且找不到任何运行过Maven+owner的人。 附加信息:如果我运行上面的config方法,但将-durl={url}指定为arg,那么不是从Environment.class

  • 我正在运行spring boot,KafkaListener是我的客户。问题是我们如何从失败的kafka配置中恢复,并避免应用程序在退出代码为0的过程结束时停止。例如,不正确的配置可能是不正确的endpointurl。如果无法访问Kafka服务器,也会出现同样的情况。因此,在任何情况下,KafkaListner进程都不应该杀死服务器。 ontext.java:895应用程序上下文异常:未能启动be

  • 我在一个项目中混合了单元测试框架(用于surefire maven插件):JUnit TestNG(几乎所有测试都是JUnit测试,但TestNG包含在两个测试所需的反应流TCK框架中。所有集成测试(故障保护)都只是JUnit测试。我成功地将surefire配置为使用以下插件配置运行两个测试:JUnit和TestNG: 当我运行