javascript - Protractor - 需要在默认行为和 jasmine-fail-fast 之间找到一个快乐的媒介

标签 javascript testing jasmine protractor automated-tests

我可以和很多专业人士一样对测试失败时的默认 Protractor 行为感到沮丧 - 它只会继续运行测试,你必须等到它完成才能修复错误。

我阅读了相关帖子并遇到了 jasmine-bail-fast 解决方案。此处提供了相关帖子的链接:Exit Protractor e2e test on fail?

但是,这个解决方案让我陷入困境。我不想在无法关闭确认消息或遇到类似的小问题时终止测试套件。

我希望能够通过 exitonfailure() 函数或类似函数控制何时退出脚本。例如,如果有这段代码:

> browser.wait(function() 
>       return browser.isElementPresent(acceptBudgetButton);
>     }, 30000, 'Error - Unable to save budget changes because Accept Budget button is not visible. Terminating test run.');

并在此 block 之后放置 exitonfailure(),我希望我的测试运行立即退出。但是,如果 exitonfailure() 不存在,我想测试继续运行。

是否有可行的方法来实现这个目标并掌握自己的命运?

感谢您的帮助!

最佳答案

您可以适本地处理 browser.wait() 成功和失败的情况:

var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(acceptBudgetButton), 30000).then(
    function () {
        // success
    }, 
    function () {
        // failure
        console.log('Error - Unable to save budget changes because Accept Budget button is not visible. Terminating test run.');
        jasmine.getEnv().bailFast();
    }
});

另外,考虑使用 fail() function未能通过测试。

关于javascript - Protractor - 需要在默认行为和 jasmine-fail-fast 之间找到一个快乐的媒介,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514618/

相关文章:

javascript - Kendo 条形图类别标签左右基于值

javascript - 有没有办法以编程方式逐行抑制所有 ESLint 错误?

c# - c# 中的单元测试项目与带有 xunit 的类库之间的区别

testing - 如何将任意 proptest 值的转换排除在测试用例主体之外?

javascript - 要求使用 AMD 模式为 jQuery UI 事件提供错误

sql-server - 如何为所有测试文件运行 Jasmine beforeAll

javascript - Jasmine angularjs - 监视 Controller 初始化时调用的方法

javascript - Frida - 访问具有所需类型的类属性

javascript - 在 Typescript 中输入 Immutable.js Map

testing - 是否可以仅将 Zephyr for JIRA 用于选定的项目?