【问题标题】:Can I create a custom error at Cypress.io?我可以在 Cypress.io 上创建自定义错误吗?
【发布时间】:2021-07-02 20:17:47
【问题描述】:

我尝试了各种技术,但都没有创建自定义错误消息。 有没有人设法解决这个问题?

const { statusCode, body } = serverRequest.response;
if (statusCode !== 200 || statusCode !== 201) {
  const { errorKey, subErrorKey, errorMsg } = body?.error || {};

  Cypress.runner.stop();
  throw new Error(`${errorKey}->${subErrorKey}-${errorMsg}`);
}

【问题讨论】:

  • 那个对我有用。 throw new Error(${errorKey}->${subErrorKey}-${errorMsg}); 你得到什么错误。可能是Cypress.runner.stop();这行是问题
  • 是的@RosenMihaylov 是对的,当你调用Cypress.runner.stop() 时,它会这样做,只是停止,永远不要执行你的throw

标签: cypress


【解决方案1】:

throw new Error(...) 本身将停止当前的当前测试,或所有测试(如果它位于 before()beforeEach() 中)。

before(() => {
  ...
  const { statusCode, body } = serverRequest.response;
  if (statusCode !== 200 || statusCode !== 201) {
    const { errorKey, subErrorKey, errorMsg } = body?.error || {};
    throw new Error(`${errorKey}->${subErrorKey}-${errorMsg}`);
  }
  ...
})

Cypress 会以类似“因为在 'before()' 中发生错误,我们不会执行任何测试”之类的内容停止。

【讨论】:

    【解决方案2】:

    抛出新的错误足以停止这种情况。我认为您的代码只需要删除 Cypress.runner.stop();,因为它会关闭所有内容。

    const { statusCode, body } = serverRequest.response;
                    if (statusCode !== 200 || statusCode !== 201) {
                        const { errorKey, subErrorKey, errorMsg } = body?.error || {};
    
                       
                        throw new Error(`${errorKey}->${subErrorKey}-${errorMsg}`);
                    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2021-07-15
      • 2021-10-05
      相关资源
      最近更新 更多