我有两个profile:dev和default。当active profile是default时,我想跳过一些(不是所有)测试。是否可以以某种方式标记这些测试?或者如何实现这一点?我使用springboot。这是我的父测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyServiceStarter.class, webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT,
properties = {"flyway.locations=filesystem:../database/h2", "server.port=9100", "spring.profiles.default=dev"})
@Category(IntegrationTest.class)
public abstract class AbstractModuleIntegrationTest { ... }
6条答案
按热度按时间kdfy810k1#
这里是JUnit 5.9.x的另一个替代方案。这只适用于测试方法,而不是类级别,因为在这种情况下,
isProfileActive
需要是static
。unhi4e5o2#
我的同事找到了一个解决方案:因此,如果你需要注解单独的测试,你可以使用
@IfProfileValue
注解:此测试仅在默认配置文件处于活动状态时运行
更新:对于Junit 5用途:
更多信息:https://docs.spring.io/spring-framework/docs/current/reference/html/testing.html#integration-testing-annotations-meta
ncecgwcz3#
是的,你能做到。
例如使用
@ActiveProfiles
:vawmfj5a4#
@IfProfileValue
仅适用于JUnit 4。如果您使用的是JUnit 5,那么此时应该使用@EnabledIf
或@DisabledIf
。示例:
更多详情请参见文档。
ttygqcqt5#
如果要从命令行运行测试,请使用以下命令:
如果上面的方法都不适合你,你可以使用下面的注解(在一个类或单个测试方法上):
如果Spring曲线设置为
dev
或default
或local
(正则表达式),则测试将被禁用sd2nnvve6#
您可以使用此基于配置文件的条件: