Spring 测试@ActiveProfiles 替代方案?
Spring Test @ActiveProfiles alternative?
我想为带有外部变量的测试设置活动配置文件 - 例如,VM 选项。我有什么变化吗?
变体 1:使用变量设置 @ActiveProfiles
,例如 @ActiveProfile("${testProfile:test}")
- 不起作用或我不知道如何。
变体 2:使用任何上下文设置,例如 WebContextInitializer
(不适用于测试)。
有什么想法吗?
您或许可以使用 ActiveProfilesResolver
参见下面的示例:
public class MyActiveProfilesResolver implements ActiveProfilesResolver{
@Override
public String[] resolve(Class<?> testClass) {
String os = System.getProperty("os.name");
String profile = (os.toLowerCase().startsWith("windows")) ? "windows" : "other";
return new String[]{profile};
}
}
@ActiveProfiles(resolver = MyActiveProfilesResolver.class)
public class MyServiceTests {
}
我想为带有外部变量的测试设置活动配置文件 - 例如,VM 选项。我有什么变化吗?
变体 1:使用变量设置 @ActiveProfiles
,例如 @ActiveProfile("${testProfile:test}")
- 不起作用或我不知道如何。
变体 2:使用任何上下文设置,例如 WebContextInitializer
(不适用于测试)。
有什么想法吗?
您或许可以使用 ActiveProfilesResolver
参见下面的示例:
public class MyActiveProfilesResolver implements ActiveProfilesResolver{
@Override
public String[] resolve(Class<?> testClass) {
String os = System.getProperty("os.name");
String profile = (os.toLowerCase().startsWith("windows")) ? "windows" : "other";
return new String[]{profile};
}
}
@ActiveProfiles(resolver = MyActiveProfilesResolver.class)
public class MyServiceTests {
}