我需要在本地环境中禁用一个单元测试的执行。我们使用local-test
个人资料
-Dspring.profiles.active=local-test
我需要在所有个人资料中执行我的测试, local-test
我怎样才能实现此目标?
这是我的测试,如果我放value = "!local-test"
它不起作用
@IfProfileValue(name = "spring.profiles.active", value = "local-test")
@RunWith(SpringRunner.class)
public class EnvironmentTests {
@Test
public void TestNightTimeFormatCorrect() {
throw new RuntimeException("test exception");
}
}
答案 0 :(得分:0)
我找到了一个解决方案,希望它对某些人有用。
在这种情况下,每次没有TestNightTimeFormatCorrect
个人资料时,都会执行local-test
。当没有设置配置文件时,它也将被执行。
@RunWith(SpringJUnit4ClassRunner.class)
@ProfileValueSourceConfiguration(EnvironmentTests.ProfileProfileValueSource.class)
@IfProfileValue(name = "local-test", value = "false")
public class EnvironmentTests {
@Test
public void TestNightTimeFormatCorrect() {
throw new RuntimeException("test exception");
}
public static class ProfileProfileValueSource implements ProfileValueSource
{
@Override
public String get(String string)
{
final String systemProfiles = System.getProperty("spring.profiles.active", System.getProperty("SPRING_PROFILES_ACTIVE", ""));
final String[] profiles = systemProfiles.split(",");
return Arrays.asList(profiles).contains(string) ? "true" : "false";
}
}
}