【问题标题】:How to quit test execution using cucumber hooks如何使用黄瓜钩子退出测试执行
【发布时间】:2022-01-23 08:22:36
【问题描述】:

我浏览了各种帖子,但如果我的 API 测试之一失败,我找不到一个简单的解决方案来退出黄瓜测试执行。如果条件之一失败,我想使用@After 挂钩退出测试执行。例如,如果我的 result() 返回 false 我不想执行剩余的测试。有没有简单的方法比如

if(result() == false){ 
   cucumber.quit();
}

我正在为我的 API 自动化使用放心的 gradle。

【问题讨论】:

    标签: java spring rest cucumber cucumber-java


    【解决方案1】:

    根据M.P. Korstanje 评论更新了解决方案。 您可以使用Assume 跳过测试。以下是其中一种方法,

    代码

    public class stepDef {
        static HashMap<String, String> conditions;
        static {
            conditions = new HashMap<String, String>();
        }
        
        @Before
        public void beforeTest(Scenario scenario) {
            if (conditions.containsKey("result") && conditions.get("result").equalsIgnoreCase("false")) {
                System.out.println("************************Test not executed.************************");
                Assume.assumeTrue(false);
            } else {
                System.out.println("************************Started************************");
            }
        }
    
        @After
        public void afterTest(Scenario scenario) {
            if (scenario.isFailed()) {
                conditions.put("result", "false");
            }
            System.out.println("************************Completed************************");
        }
    }
    

    输出

    @Test
    Scenario Outline: Test scenario                                                                                            
    ************************Started************************
    //Result
    ************************Completed************************
    
    @Test
    Scenario Outline: decision                            
    ************************Test not executed.************************
        org.junit.AssumptionViolatedException: got: <false>, expected: is <true>
        at org.junit.Assume.assumeThat(Assume.java:106)
        at org.junit.Assume.assumeTrue(Assume.java:50)
        at cucumberStep.stepDef.beforeTest(stepDef.java:69)
    ************************Completed************************
    

    报告

    【讨论】:

    • Cucumber 还支持 Assume 和 Assumptions。使用这些而不是断言来跳过场景。
    猜你喜欢
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2019-12-06
    • 2015-11-10
    • 2013-05-23
    相关资源
    最近更新 更多