# 使用 Maven 执行 JUnit 测试用例

> 原文： [https://howtodoinjava.com/junit/executing-junit-testcases-with-maven/](https://howtodoinjava.com/junit/executing-junit-testcases-with-maven/)

[**Maven**](//howtodoinjava.com/maven/ "Maven") 是用于项目依赖和构建管理的好工具。 它可以用于运行项目的 [**Junit**](//howtodoinjava.com/junit/ "JUnit") 测试用例。 在本文中，我将展示一些简单但有用的命令示例，以各种方式运行测试用例。

为了演示，我使用以下命令创建了一个 [**maven java 项目**](//howtodoinjava.com/maven/create-a-simple-java-project-using-maven/ "Create a simple java project using maven")：

```java
mvn archetype:generate -DgroupId=com.howtodoinjava.junit -DartifactId=mavenJunitDemo
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
```

然后，我在测试文件夹中创建了一个测试类，如下所示。

```java
package com.howtodoinjava.junit;

import org.junit.Test;

public class TestSurefire {

	@Test
	public void testcaseFirst()
	{
		System.out.println("First testcase executed");
	}

	@Test
	public void testcaseSecond()
	{
		System.out.println("Second testcase executed");
	}

	@Test
	public void testcaseThird()
	{
		System.out.println("Third testcase executed");
	}

	@Test
	public void otherTestcase()
	{
		System.out.println("Another testcase executed");
	}
}

```

让我们检查一下 maven 测试命令并查看其输出：

1）使用命令“`mvn test`”运行所有测试用例：该命令将运行测试文件夹中存在的所有测试用例，而不考虑其他任何条件。

```java
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.howtodoinjava.junit.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 sec
Running com.howtodoinjava.junit.TestSurefire
Another testcase executed
First testcase executed
Third testcase executed
Second testcase executed
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.02 sec

Results :

Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
```

2）仅使用“`-Dtest=TestSurefire test`”执行特定的测试类：这将执行测试类`TestSurefire`中的所有测试用例。

```java
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.howtodoinjava.junit.TestSurefire
Another testcase executed
First testcase executed
Third testcase executed
Second testcase executed
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec

Results :

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
```

您可以在命令中使用多个测试类，甚至可以在测试类名称中使用通配符来匹配一组测试类。 例如`mvn -Dtest=TestSurefire,TestOth*Class test`。

3）仅使用“`mvn -Dtest=TestSurefire#testcaseFirst test`”在测试类中测试某个测试用例：此命令将仅执行单个测试用例方法，即`testcaseFirst()`。

```java
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.howtodoinjava.junit.TestSurefire
First testcase executed
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
```

4）使用通配符映射测试多个测试用例，例如 “`mvn -Dtest=TestSurefire#testcase* test`”：这将有助于在一个简单的短命令中运行多个具有相似名称的测试用例。

```java
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.howtodoinjava.junit.TestSurefire
First testcase executed
Second testcase executed
Third testcase executed
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.034 sec

Results :

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
```

给我留言不清楚，或者我缺少的东西。

**祝您学习愉快！**