我們有java測試類運行的硒測試。集成測試類的彈簧配置文件
在本地環境中一切正常,但我想在jenkins上運行時關閉這些測試。
於是我就用:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest("server.port=1234")
@Profile("!jenkins")
@ActiveProfiles("integrationtests")
public class LoginAndEditProfileSeleniumTest {
...
什麼工作: 運行mvn clean test
運行所有測試本地,與integrationtests
輪廓活躍。我不想傳遞任何額外的參數。
我想實現的: 運行mvn clean test -Dspring.profiles.active=jenkins
關掉這個測試。
我可以以某種方式合併通過參數傳遞的配置文件,ActiveProfile註釋並將Profile註釋考慮在內? :)
//更新: 它可以使用類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反正合作(詹金斯輪廓活躍,但測試仍在運行)。