如何让maven忽略基于变量或构建配置文件的特定测试用例?忽略基于环境的测试用例
我有几个涉及连接到LDAP服务器的测试用例。如果我正在构建一个特定的配置文件或传递给命令的maven变量,那么如何让这些测试用例被忽略?我不希望忽略所有的测试用例。
如何让maven忽略基于变量或构建配置文件的特定测试用例?忽略基于环境的测试用例
我有几个涉及连接到LDAP服务器的测试用例。如果我正在构建一个特定的配置文件或传递给命令的maven变量,那么如何让这些测试用例被忽略?我不希望忽略所有的测试用例。
您的解决方案似乎分为两部分:(1)通过Maven通知进程它正在给定配置下运行;(2)根据该配置有条件地运行测试。
第一位很简单:使用-D
开关在系统属性来传递,如this SO answer,承认你需要使用surefire argLine property到系统属性作为参数传递的系统属性中:
mvn -DargLine="-DldapTests=disable" test
对于第二个,您可以在JUnit中使用新的assumeTrue
和相关假设API,如this other SO answer。
@Before
public void checkLdapTests() {
assumeThat(System.getProperty("ldapTests"), is(not(equalTo("disable"))));
}
这就是我正在寻找的! – monksy
对于您来说,将单元测试与集成测试分开测试是否合理?或者您是否有其他集成测试不需要LDAP并可能始终运行? –
我可以拆分测试,你是否暗示测试套件分裂?我也在寻找一种方法让maven接受某种输入来说“我可以在这里运行测试”,或者我不能 – monksy