在Selenium Cucumber-JVM报告中标记KnownFailures

时间:2016-02-17 17:08:55

标签: automation cucumber-jvm cucumber-junit cucumber-java

我们目前正致力于开始使用Cucumber-JVM [Java selenium环境]标记/突出显示测试中的已知故障。 我们目前在标准Cucumber生成的报告之上使用Masterthought插件[但是将对任何其他开源插件开放或依赖于标准Cucumber(JSON / JavaScript / XML / HTML)报告]

(这将类似于团队城市的静音设施,而是一个定制的解决方案)

  1. 我们计划维护自己的小dB或属性文件,其中包含已知故障的测试用例参考

  2. 从下一个测试运行开始,我希望我的Cucumber测试报告突出显示或至少在报告中有一些列/标志,可以突出显示已知故障(来自上述步骤1中的映射) ),如果相同的测试用例再次失败。

  3. 您能否分享一下有关如何实施此已知故障功能的想法?

    我们如何操纵Cucumber runner&输出

    如果我们设法更改Cucumber输出 - 例如JSON / XML输出文件,那么任何外部报告插件(如MasterThought)都可以获取更改。

    请在任何类似的努力中提供宝贵的经验。

    非常感谢

1 个答案:

答案 0 :(得分:1)

您可以使用QAF BDD在场景元数据中指定其他元数据,比如说缺陷ID。例如,下面是方法调用监听器实现:

SCENARIO: Example test
META-DATA: {"description":"Data driven test that uses csv file to provide data", "defect-id":"PRJ-123"}
    Given I am on fruits and colors activity
    When i select '${fruit}'
    Then the color should be '${color}'
END

您可以使用标准TestNG侦听器在测试完成后进一步处理。您将能够在侦听器中访问自定义元数据。例如:

@Override
public void afterInvocation(final IInvokedMethod method, final ITestResult tr, final ITestContext context) {

    if (method.isTestMethod()) {
        TestNGScenario scenario = (TestNGScenario) tr.getMethod();
        Map<String, Object> metadata =scenario.getMetaData();
        if(metadata.containsKey("defect-id")){
        //do the needful
        }
    }
}