今天單元測試遇到一個問題,在引入org.junit.Test做單元測試時,IDEA左邊的啟動標(biāo)志Run Test不顯示。很郁悶...
最終解決是刪除了導(dǎo)入的org.junit.Test,重新導(dǎo)入org.junit.jupiter.api.Test后啟動標(biāo)志才出現(xiàn)的。
查閱了下資料,原理是:
? ??spring boot 2.2之前使用的是 Junit4
? ? spring boot 2.2之后使用的是 Junit5
Spring Boot 2.2 前后區(qū)別
????Spring Boot 2.2 之前的測試類
package com.example.demo1;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Demo1ApplicationTests {
? ? @Test
? ? public void contextLoads() {
? ? }
}
????Spring Boot 2.2 之后的測試類
package com.example.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
? ? @Test
? ? void contextLoads() {
? ? }
}
此外呢,還有pom文件也有區(qū)別:
????Spring Boot 2.2 之后的 pom.xml
<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-test</artifactId>
? ? <scope>test</scope>
? ? <exclusions>
? ? ? ? <exclusion>
? ? ? ? ? ? <groupId>org.junit.vintage</groupId>
? ? ? ? ? ? <artifactId>junit-vintage-engine</artifactId>
? ? ? ? </exclusion>
? ? </exclusions>
</dependency>
????Spring Boot 2.2 之后的 pom.xml
<dependency>
? ? <groupId>org.springframework.boot</groupId>
? ? <artifactId>spring-boot-starter-test</artifactId>
? ? <scope>test</scope>
? ? <exclusions>
? ? ? ? <exclusion>
? ? ? ? ? ? <groupId>org.junit.vintage</groupId>
? ? ? ? ? ? <artifactId>junit-vintage-engine</artifactId>
? ? ? ? </exclusion>
? ? </exclusions>
</dependency>
最后附上官方文檔說明: