springboot 那个循环依赖 junit-jupiter
时间: 2024-02-26 07:54:46 浏览: 17
在 Spring Boot 中,JUnit Jupiter 和 Spring Test 之间存在循环依赖的问题。具体来说,JUnit Jupiter 依赖于 Spring Test 来启动 Spring 上下文,而 Spring Test 又依赖于 JUnit Jupiter 来执行测试。因此,在使用 Spring Boot 和 JUnit Jupiter 进行测试时,您可能会遇到“Circular view path”或“NoSuchBeanDefinitionException”等错误。
为了解决这个问题,您可以尝试使用以下两种方法之一:
1. 使用 @SpringBootTest 注解来代替 @ExtendWith(SpringExtension.class) 注解,这样可以避免引入 JUnit Jupiter 对 Spring Test 的依赖。
2. 在 pom.xml 文件中将 JUnit Jupiter 的版本降低到 5.4.2 或更低的版本,因为在这些版本中,JUnit Jupiter 不再依赖于 Spring Test。
希望这个回答能够对您有所帮助!
相关问题
junit-jupiter-api 依赖
junit-jupiter-api 是 JUnit 5 中提供的一个测试引擎,它是编写基于 JUnit 5 的测试用例所必需的依赖之一。在 Maven 中,可以通过以下方式将其添加到项目的依赖中:
```xml
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.2</version>
<scope>test</scope>
</dependency>
```
在 Gradle 中,可以通过以下方式将其添加到项目的依赖中:
```groovy
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2'
```
junit-jupiter作用
junit-jupiter 是 JUnit 5 的一个子模块,它提供了一组新的测试注解和扩展,使得 Java 开发人员可以更加方便地编写和执行单元测试。junit-jupiter 中最常用的注解包括:
- @Test:用于标注测试方法。
- @BeforeEach:在每个测试方法执行前执行。
- @AfterEach:在每个测试方法执行后执行。
- @BeforeAll:在所有测试方法执行前执行。
- @AfterAll:在所有测试方法执行后执行。
- @DisplayName:用于给测试方法或测试类指定一个自定义的名称。
- @Disabled:用于标注暂时不需要执行的测试方法。
此外,junit-jupiter 还提供了一些扩展,如 TestInfo、TestReporter 等,可以用于获取测试方法的元数据信息和测试报告。总之,junit-jupiter 为 Java 开发人员提供了更加灵活、可扩展和易于维护的单元测试框架。