【问题标题】:Ignore Test Cases Based on Environment忽略基于环境的测试用例
【发布时间】:2013-10-15 19:12:57
【问题描述】:

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

我有一些涉及连接到 LDAP 服务器的测试用例。如果我使用特定配置文件或将 maven 变量传递给命令进行构建,我将如何忽略这些测试用例?我不想忽略所有的测试用例。

【问题讨论】:

  • 将测试按照单元测试与集成测试分开是否有意义?或者您是否有其他不需要 LDAP 并且可能始终运行的集成测试?
  • 我可以拆分测试,您是在暗示按测试套件拆分吗?我也在寻找一种方法让 maven 接受某种输入来表示“我可以在这里运行测试”或者我不能

标签: unit-testing maven build junit


【解决方案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"))));
}

【讨论】:

  • 这正是我想要的!
  • 它适用于我使用mvn -DldapTests=disable test
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多