2013-10-08 9 views
0

如何让maven忽略基于变量或构建配置文件的特定测试用例?忽略基于环境的测试用例

我有几个涉及连接到LDAP服务器的测试用例。如果我正在构建一个特定的配置文件或传递给命令的maven变量,那么如何让这些测试用例被忽略?我不希望忽略所有的测试用例。

+1

对于您来说,将单元测试与集成测试分开测试是否合理?或者您是否有其他集成测试不需要LDAP并可能始终运行? –

+0

我可以拆分测试,你是否暗示测试套件分裂?我也在寻找一种方法让maven接受某种输入来说“我可以在这里运行测试”,或者我不能 – monksy

回答

1

您的解决方案似乎分为两部分:(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")))); 
} 
+0

这就是我正在寻找的! – monksy