如果beforeAll失败,如何跳过所有测试?使用茉莉和量角器

时间:2019-12-13 14:22:11

标签: javascript jasmine protractor

如果it()失败,我需要跳过所有beforeAll(),但我发现的所有解决方案均不起作用-beforeAll()引发错误,但所有it()仍然存在执行并被标记为'failed'

我已经尝试过:stopSpecOnExpectationFailure: true,和Jasmine pending()选项,但仍然无法使用。

1 个答案:

答案 0 :(得分:2)

此解决方案符合您的需求吗?

https://www.npmjs.com/package/protractor-fail-fast

https://github.com/pmowrer/jasmine-fail-fast

我知道建议npm-packages不是一个真正的“答案”,但我每隔几个月就会看到这种类型的问题,并且通常最终会使用一些现成的可行解决方案(如上)

更新:如果您能提出自己的解决方案并与之分享,我将不胜感激

更新2:另外,我将分享一种古怪的方法。

您将需要Protractor 6(因为它使用了最新的茉莉花版本)

比方说,您的测试取决于某些元素的存在。 您可以在beforeAll中进行此操作:

let elementIsPresent = await myElement.isDisplayed()
it('should test if element is present', function() {
   if(elementIsPresent) {
      // do your thing
   } else {
    pending('skipping test')
  }
});

您需要注意以下几点:

  • 第6版以下的量角器将此测试标记为“失败”(而不是跳过)

  • 我无法在您的it块中使用箭头功能