JUnit测试用例– Eclipse和Maven

时间:2020-02-23 14:35:25  来源:igfitidea点击:

JUnit测试用例是普通的Java类,带有要由JUnit框架执行的方法。
JUnit 5是早期版本的主要升级。

在Eclipse中创建JUnit测试用例

最新的Eclipse版本附带了对JUnit测试用例创建的内置支持。
我们可以在Eclipse中轻松创建JUnit测试用例类,如下所示。

转到 new | Eclipse中的JUnit测试用例。

在下一个弹出窗口中,提供测试类名称,其包,要生成的方法存根等。
请注意,Eclipse提供了创建JUnit 3,JUnit 4和JUnit Jupiter测试用例的选项。
除非您的项目使用的是较早版本的JUnit,并且尚未迁移到最新版本,否则最好创建JUnit Jupiter测试用例。

单击"完成"按钮后,将生成测试用例类。
您可以通过运行|运行该类。
运行方式| JUnit测试。
您也可以通过在"编辑器"窗口中右键单击或者选择类,然后在其上单击鼠标右键来访问此菜单。

JUnit Eclipse运行配置

您还可以创建运行配置以执行JUnit测试用例。
通过选择程序包或者仅选择一些方法在测试类中运行,运行配置有助于一次运行多个测试类。

运行JUnit测试时,将自动创建一个示例运行配置。
因此,您可以根据需要进行编辑。

使用Maven Build执行JUnit测试用例

如果您希望通过maven构建执行JUnit 5测试用例,则必须配置具有junit-platform-surefire-provider依赖项的" maven-surefire-plugin"。

<build>
	<plugins>
		<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.0</version>
          <dependencies>
              <dependency>
                  <groupId>org.junit.platform</groupId>
                  <artifactId>junit-platform-surefire-provider</artifactId>
                  <version>1.2.0</version>
              </dependency>
          </dependencies>
      </plugin>
	</plugins>
</build>

这是我在示例项目中创建的简单JUnit测试类。

package com.theitroad.annotations;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import com.theitroad.utils.MyUtils;

class MyUtilsTest {

	@BeforeAll
	static void setUpBeforeClass() throws Exception {
		System.out.println("Set Up Before Class - @BeforeAll");
	}

	@AfterAll
	static void tearDownAfterClass() throws Exception {
		System.out.println("Tear Down After Class - @AfterAll");
	}

	@BeforeEach
	void setUp() throws Exception {
		System.out.println("Set Up @BeforeEach");
	}

	@AfterEach
	void tearDown() throws Exception {
		System.out.println("Tear Down @AfterEach");
	}

	@Test
	void test_add() {
		assertEquals(10, MyUtils.add(5, 5));
	}

	@Test
	void test_reverse() {
		assertEquals("cba", MyUtils.reverse("abc"));
	}
}

当执行" mvn test"命令时,它将为我们的JUnit测试类执行生成以下代码段。

[INFO] Running com.theitroad.annotations.MyUtilsTest
Set Up Before Class - @BeforeAll
Set Up @BeforeEach
Tear Down @AfterEach
Set Up @BeforeEach
Tear Down @AfterEach
Tear Down After Class - @AfterAll
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.theitroad.annotations.MyUtilsTest

如果要跳过测试用例的执行,可以运行以下命令:

mvn clean install -Dmaven.test.skip=true