如何在量角器黄瓜中执行软断言

时间:2019-06-19 04:17:28

标签: protractor chai cucumberjs

    defineSupportCode(({Given, When,Then})=>{

      When('click on search button', async () =>{
        await browser.actions().sendKeys(protractor.Key.ENTER).perform();
        await browser.sleep(3000)
        await browser.actions().sendKeys(protractor.Key.ENTER).perform();
        await browser.sleep(3000)
        let element1 = element(by.xpath("//h3[text()='Selenium - Web Browser Automation']"))
        await expect(element1.isDisplayed()).to.eventually.be.false;
      });


      Then('it should show search result', async () =>{
        let element2 = element(by.xpath("//h3[text()='Downloads - Selenium']"))
        await expect(element2.isDisplayed()).to.eventually.be.true;
      });
})

我的最后一个块被跳过了。但是我想继续我的所有测试步骤,即使它是通过还是失败(那肯定是我认为我必须使用软断言)。在testng中,我们有一类称为softassert的类。是否有可用的东西以及与之相似的东西。我正在使用chai包进行声明

TIA

1 个答案:

答案 0 :(得分:0)

背景

这不是量角器或黄瓜问题,它实际上是chai(好象您在代码段中使用chai,但是如果我错了,请随时纠正我)。

问题:

在查看chai文档https://www.chaijs.com/api/assert/之后,看起来它们像其他断言框架一样不支持软断言的概念。

解决方案1:

我能想到的唯一解决方法是将您的断言包装在try catch中,并将从断言中收到的错误存储在您的world实例中,然后在您的后钩中抛出错误。

解决方案2: 使用不支持软断言的库。通过快速搜索,我看到了https://www.npmjs.com/package/soft-assert,但是仅供参考,我还没有尝试过该库

注释: 一件坏事是屏幕截图可能捕获了不正确的信息。