【发布时间】:2015-09-30 06:33:10
【问题描述】:
我们有由 java 测试类运行的 selenium 测试。
在本地环境中一切正常,但我想在 jenkins 上运行时关闭这些测试。
所以我使用:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest("server.port=1234")
@Profile("!jenkins")
@ActiveProfiles("integrationtests")
public class LoginAndEditProfileSeleniumTest {
...
什么有效:
running mvn clean test 在本地运行所有测试,integrationtests 配置文件处于活动状态。我不想传递任何额外的参数。
我想要实现的目标:
运行mvn clean test -Dspring.profiles.active=jenkins 关闭此测试。
我可以以某种方式合并通过参数传递的配置文件、ActiveProfile 注释并考虑配置文件注释吗? :)
//更新: 可以使用扩展 ActiveProfilesResolver 的类:
public class ActiveProfileResolver implements ActiveProfilesResolver {
@Override
public String[] resolve(Class<?> testClass) {
final String profileFromConsole = System.getProperty("spring.profiles.active");
List<String> activeProfiles = new ArrayList<>();
activeProfiles.add("integrationtests");
if("jenkins".contains(profileFromConsole)){
activeProfiles.add("jenkins");
}
return activeProfiles.toArray(new String[activeProfiles.size()]);
}
}
但它似乎无论如何都不与@Profile合作(jenkins配置文件处于活动状态但测试仍在运行)。
【问题讨论】:
标签: spring spring-test