gpt4 book ai didi

java - Maven 测试 SpringBootTest 抛出无法找到 @SpringBootConfiguration 你需要使用 @ContextConfiguration 或 @SpringBootTest

转载 作者:行者123 更新时间:2023-12-01 17:44:48 28 4
gpt4 key购买 nike

我有一个具有以下结构的 Spring Boot 项目

src
|--- main
| |--- java
| | |--- io.example.config
| | | |--- AppConfig (Annotated @Cofiguration)
| | |--- io.example.beans
| | | |--- Bean1 (Annotated @Component)
| | | |--- Bean2 (Annotated @Component)
| | |--- io.example.repository
| | | |--- Repo (DynamoDB Crud Repo; Annotated @EnableScane)
| | |--- io.example.main
| | | |--- Application (Annotated @SpringBootApplication)
| |--- module-info.java
|--- test
| |--- java
| | |--- io.example.main
| | | |--- IntTest (Annotated @SpringBootTest)

IntTest 类中的代码如下所示

@RunWith(SpringRunner.class)
@SpringBootTest
public class IntTest {
...
}

当我从 IntelliJ 运行测试时,它运行良好。但我从 maven mvn test 运行它,它抛出以下错误

Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

我阅读了一些文档和类似的问题。 大多数解决方案都会纠正源文件夹和测试文件夹之间的包对齐。这对我来说不是问题。

当我执行以下操作时,测试使用 mvn test 运行良好,我明确定义了上下文依赖项

package io.example.main;

import org.springframework.test.context.junit4.SpringRunner;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import io.example.config.AppConfig;
import io.example.beans.Bean1;
import io.example.beans.Bean2;

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { Application.class, AppConfig.class, Bean1.class, Bean2.class })
@SpringBootTest
public class IntTest {
...

@Autowired
private Bean1 b1;

@Autowired
private Bean2 b2;

@Test
public void testRandom() {
/* assert statements */
}
}

我可以执行上述操作,但是有什么方法可以在不显式定义 ContextConfiguration 的情况下运行测试?

最佳答案

尝试将您的 Application (Annotated @SpringBootApplication) 类放入作为其他包的根的包中。在您的情况下,它是 io.example 包。

关于java - Maven 测试 SpringBootTest 抛出无法找到 @SpringBootConfiguration 你需要使用 @ContextConfiguration 或 @SpringBootTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com