gpt4 book ai didi

java - 你如何告诉 Maven 运行哪些测试?

转载 作者:行者123 更新时间:2023-12-02 07:23:59 25 4
gpt4 key购买 nike

我正在关注 this tutorial并已到达测试部分。当我创建 HelloControllerTest文件以及 HelloControllerIT文件在我的测试目录中 src/test/java/hello/只有 HelloControllerTest测试运行。但是,如果我重命名第二个文件以结尾 Test ,例如 HelloController2Test ,那么它也会运行。我在 Maven 构建期间从命令行运行测试 mvn clean verify .我在 OSX 上运行 Maven 3.3.9。

我有两个主要问题:Maven 如何知道要运行哪些测试?而且,更重要的是,我如何告诉 Maven 运行其他测试?下面是我的 pom.xml ,直接取自 tutorial :

<?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>org.springframework</groupId>
<artifactId>gs-spring-boot</artifactId>
<version>0.1.0</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<properties>
<java.version>1.8</java.version>
</properties>


<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

最佳答案

maven-surefire-plugin将,by default , 尝试执行所有遵循 Test*.java 模式的测试或 *Test.java*TestCase.java .它会忽略您的 HelloControllerIT非常有意地,按照标准的 maven 约定,这不是 单位测试,是集成 测试。 maven-surefire-plugin 在所有 maven 项目中默认启用。

有一个单独的插件,maven-failsafe-plugin ,用于运行集成测试,由命名模式 IT*.java 表示 ( by default )或 *IT.java*ITCase.java .它在 integration-test 期间运行构建阶段而不是 test阶段。但是,与 maven-surefire-plugin 不同的是,您需要显式启用它。 (我不知道这是为什么。)

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

将 maven-failsafe-plugin 添加到您的项目中,您的集成测试应该可以正常运行。

关于java - 你如何告诉 Maven 运行哪些测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36290953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com