我正在尝试用maven运行一个简单的junit测试,但它没有检测到任何测试。我哪里错了?项目目录
Project -> src -> test-> java -> MyTest.java
结果:
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
Pom.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>com.buildproftest.ecs</groupId>
<artifactId>buildprofiletest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
JUNIT测试用例
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void printTest() {
System.out.println("Running JUNIT test");
}
}
结果是没有要运行的测试用例。
5条答案
按热度按时间qlfbtfca1#
根据注解(
import org.junit.jupiter.api.Test
),您正在尝试使用Maven运行JUnit5测试。根据documentation,您必须添加此依赖项:您的Maven版本附带的
maven-surefire-plugin
版本不支持JUnit5。您可以将Maven更新到最新版本。您还可以设置maven-surefire-plugin
的版本:请参见junit5-samples for this information。
请参阅Maven存储库中的Maven Surefire Plugin构件。截至2019-01年,版本为
3.0.0-M3
。ig9co6j12#
tl;DR
向项目添加两个依赖项:
*JUnit Jupiter(聚合器)
Maven Surefire插件
…以及:
junit-jupiter
-为JUnit5创建更简单的原型Answer by LaurentG似乎是正确的,但有点过时。
从JUnit5.4开始,您可以替换多个Maven构件:
junit
junit-jupiter-api
junit-jupiter-engine
…只有一件艺术品:
junit-jupiter
…来运行JUnit5测试。
该构件是其他构件的集合,是简化POM文件的方便 Package 器。请参见this repository。
这为您提供了编写和运行JUnit5jupiter测试所需的所有信息。
maven-surefire-plugin
您还需要Surefire plugin,如other Answer所示。确保获得最新版本,因为Sure Fire最近有一些重要的修复/增强。
请参阅Maven、Buildr、Ivy、Gew、Grails、SBT和Leiningen的依赖项声明的this list。引用Maven配置:
junit-vintage-engine
用于JUnit3&4测试如果您希望继续运行旧的JUnit3或JUnit4legacy测试,请添加另一个依赖项
junit-vintage-engine
。rpppsulh3#
@Test
注解可以工作,但org.juit.jupiter.api.Test@Test
注解不起作用。解决方案:
maven-surefire-plugin
并确保使用正确的junit-jupiter-engine
的官方指南**1)**将引擎依赖项添加到依赖项块:
**2)**将引擎依赖添加到maven-surefire:
pkln4tw64#
在maven surfire的配置部分中添加“Include”,您的测试应该以Test.java结束,并且它应该可以工作
t98cgbkg5#
我最近发现,为了让maven执行我的测试,我必须在我的测试方法上添加前缀“test”。
否则测试将被忽略。这是我的POM的一部分: