我可以在 Cypress.io 上创建自定义错误吗?

时间:2021-06-30 16:07:27

标签: cypress

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

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}`);
}

2 个答案:

答案 0 :(得分: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()' 中发生错误,我们将不执行任何测试”。

答案 1 :(得分:0)

抛出新的错误足以停止案例。我认为您的代码只需要删除 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}`);
                }