Spring Boot单元测试RunWith注解报错

1
2
    RunWith注解报错、报红、没有提示的问题,想必令很多Spring Boot初学者很头疼吧,其实博主也是初学者。下面博主简单来说一下这个问题的解决办法。
    RunWith注解报错是因为缺少jar包,Spring Boot单元测试除了要导入Spring Boot本身的测试包,还需要导入junit的包,以下是博主的导入的所有依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>
        <!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

注意:
此处junit和spring-boot-starter-test这两个依赖不要写

1
2
<version></version>
<scope></scope>

这两个属性。
另外,如果遇到无效的测试类这个错误,请检查一下测试方法上注解的导包,博主的测试类代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.atguigu.railgun;
import com.atguigu.railgun.bean.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
 * SpringBoot单元测试
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {<!-- -->
    @Autowired
    private Person person;
    @Test
    public void contextLoads() {<!-- -->
        System.out.println(person);
    }
}

注意看一下,导的是

1
import org.junit.Test;

这个包。另外需要注意的是,修改maven中依赖的相关信息之后要确认maven已经重新导入资源完毕,以免出现代码没有问题,运行依然报错。

以上就是关于RunWith注解报错问题的解决方案,希望对初学者有帮助。