java 运行maven测试时禁用 Spring Boot

qmelpv7a  于 2023-02-28  发布在  Java
关注(0)|答案(3)|浏览(120)

我的项目中有一些单元测试类,我想用mvn test来测试它们,但是每当我运行这个命令时,spring Boot 的一个示例就会启动并打开数据库连接。
我在一个服务器上运行这些测试,它没有访问数据库的权限,而且我的测试都没有使用数据库,我只是像IDE一样执行测试。

jq6vz3qz

jq6vz3qz1#

我想他们中有人能帮你

1 -禁用所有测试

mvn clean install -DskipTests

2 -准备切换测试

@ExtendWith(SpringExtension.class)
@EnabledIf(expression = "${tests.spring.enabled:true}")

如果通过-Dtests.spring.enabled=,则false或true将禁用测试

3 -将测试指向其他配置

@ExtendWith(SpringExtension.class)
@TestPropertySource(locations = "classpath:application-${spring.profiles.active:test}.properties")

这样,您就可以将应用程序连接到本地数据库

4 -更改测试

使用模拟将集成测试转换为单元测试或没有连接的组件测试

qlzsbp2j

qlzsbp2j2#

使用@Disabled("TODO: Fix root cause")
https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/Disabled.html
public@interface Disabled@Disabled用于表示带注解的测试类或测试方法当前被禁用,不应执行。@Disabled可以选择声明一个原因,以记录带注解的测试类或测试方法被禁用的原因。
当应用于类级别时,该类中的所有测试方法也会自动禁用。
当应用于方法级别时,此注解的存在不会阻止测试类被示例化,而是阻止测试方法和方法级别生命周期回调(如@BeforeEach方法、@AfterEach方法和相应的扩展API)的执行。

xyhw6mcr

xyhw6mcr3#

我遇到的问题是一个带有@SpringBootTest注解的空类。删除它后,测试在没有Spring干扰的情况下工作。

相关问题