如果it()
失败,我需要跳过所有beforeAll()
,但我发现的所有解决方案均不起作用-beforeAll(
)引发错误,但所有it()
仍然存在执行并被标记为'failed'
我已经尝试过:stopSpecOnExpectationFailure: true,
和Jasmine pending()
选项,但仍然无法使用。
答案 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
块中使用箭头功能