【问题标题】:Cancel all protractor tests on condition met在满足条件时取消所有量角器测试
【发布时间】:2019-08-16 13:30:14
【问题描述】:

我有一个基本的 Angular 6 应用程序,默认设置了 e2e 测试。

我们在测试数据库上进行 CRUD 操作(测试环境的后端应该在开始 e2e 测试之前运行)。

这个想法是在测试环境正在运行时请求一个返回 true 的特定端点。 (快速服务器中的后端)

在第一个规范中,我可以提出该请求,但 throw new Error() 不会停止测试。

我发现一些 npm 包会强制测试在第一次失败时退出(茉莉花失败鲸鱼和茉莉花快速失败),但我不希望我的测试在错误环境之外的任何其他异常上停止。

我尝试在 protractor.conf.js 中的 onPrepare() 方法中进行此测试。我可以在那里抛出 new Error() 但我不能发出 http 请求(甚至基本的 XmlHTTPRequest 都没有定义)

我有哪些解决方案可以确保仅在正确的环境运行时才运行测试?

【问题讨论】:

  • process.exit() 适合你吗?
  • @thorn̈ 似乎以意外错误结束测试。我想要一个更干净的出口,但它确实可以满足我的需要,谢谢
  • @thorn̈ 你能发布一个答案让我接受吗? :)

标签: node.js angular jasmine protractor e2e-testing


【解决方案1】:

您可以为您的案例使用 jasmine done 功能。

 it('should do something', (done) => {
        try {
            // doing something and an error happend
            throw Error('failure');
        } catch (error) {
            done.fail(error);
        }
    });

测试将失败并被标记为失败,并将中止当前套件“描述”中的未来测试

【讨论】:

  • 这不是我需要的。
  • 您好,“在第一个规范中,我可以提出该请求,但抛出 new Error() 不会停止测试。”,引用此内容,我知道您想终止错误测试。
  • 它是终止其他文件中的其他测试还是仅终止当前的描述?
  • 引用我自己的话:“测试将失败并被标记为失败,并将中止当前套件中的未来测试“描述””
【解决方案2】:

process.exit() 对于您的用例来说似乎是一个足够好的解决方案。

【讨论】:

    猜你喜欢
    • 2016-04-13
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多