如何根据条件禁用 TestNG 测试

新手上路,请多包涵

目前有没有一种方法可以 根据条件禁用 TestNG 测试

我知道您目前可以像在 TestNG 中那样禁用测试:

 @Test(enabled=false, group={"blah"})
public void testCurrency(){
...
}

我想根据条件禁用相同的测试,但不知道如何。像这样的东西:

 @Test(enabled={isUk() ? false : true), group={"blah"})
public void testCurrency(){
...
}

任何人都知道这是否可能。

原文由 Afamee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 495
2 个回答

你有两个选择:

您的注释转换器将测试条件,然后在不满足条件时覆盖 @Test 注释以添加属性“enabled=false”。

原文由 Cedric Beust 发布,翻译遵循 CC BY-SA 2.5 许可协议

一个更简单的选择是在检查您的条件的方法上使用 @BeforeMethod 注释。如果您想跳过测试,则只需抛出 SkipException 即可。像这样:

 @BeforeMethod
protected void checkEnvironment() {
  if (!resourceAvailable) {
    throw new SkipException("Skipping tests because resource was not available.");
  }
}

原文由 Bruce 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题