我的项目中有一些单元测试类,我想用mvn test来测试它们,但是每当我运行这个命令时,spring Boot 的一个示例就会启动并打开数据库连接。我在一个服务器上运行这些测试,它没有访问数据库的权限,而且我的测试都没有使用数据库,我只是像IDE一样执行测试。
mvn test
jq6vz3qz1#
我想他们中有人能帮你
1 -禁用所有测试
mvn clean install -DskipTests
2 -准备切换测试
@ExtendWith(SpringExtension.class) @EnabledIf(expression = "${tests.spring.enabled:true}")
如果通过-Dtests.spring.enabled=,则false或true将禁用测试
-Dtests.spring.enabled=
3 -将测试指向其他配置
@ExtendWith(SpringExtension.class) @TestPropertySource(locations = "classpath:application-${spring.profiles.active:test}.properties")
这样,您就可以将应用程序连接到本地数据库
4 -更改测试
使用模拟将集成测试转换为单元测试或没有连接的组件测试
qlzsbp2j2#
使用@Disabled("TODO: Fix root cause")https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/Disabled.htmlpublic@interface Disabled@Disabled用于表示带注解的测试类或测试方法当前被禁用,不应执行。@Disabled可以选择声明一个原因,以记录带注解的测试类或测试方法被禁用的原因。当应用于类级别时,该类中的所有测试方法也会自动禁用。当应用于方法级别时,此注解的存在不会阻止测试类被示例化,而是阻止测试方法和方法级别生命周期回调(如@BeforeEach方法、@AfterEach方法和相应的扩展API)的执行。
@Disabled("TODO: Fix root cause")
xyhw6mcr3#
我遇到的问题是一个带有@SpringBootTest注解的空类。删除它后,测试在没有Spring干扰的情况下工作。
@SpringBootTest
3条答案
按热度按时间jq6vz3qz1#
我想他们中有人能帮你
1 -禁用所有测试
2 -准备切换测试
如果通过
-Dtests.spring.enabled=
,则false或true将禁用测试3 -将测试指向其他配置
这样,您就可以将应用程序连接到本地数据库
4 -更改测试
使用模拟将集成测试转换为单元测试或没有连接的组件测试
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)的执行。
xyhw6mcr3#
我遇到的问题是一个带有
@SpringBootTest
注解的空类。删除它后,测试在没有Spring干扰的情况下工作。