最初のテスト失敗時にすべての Cypress テストを中断するにはどうすればよいですか?
各 PR に対して、Cypress で完全な e2e テストを開始するためにセマフォを使用しています。しかし、時間がかかりすぎます。
最初のテストが失敗したら、すべてのテストを中断したいと思います。
完全なエラーを取得することは、開発時に各開発者の役割です。デプロイ前に何か問題があればできるだけ早く通知を受け取りたいので、完全なテストが完了するまで待つ必要はありません。
これまでのところ、私が思いついた唯一の解決策は、Cypress を使用して現在の仕様ファイルのテストを中断することでした。
afterEach(() => {
if (this.currentTest.state === 'failed') {
Cypress.runner.end();
}
});
しかし、これでは不十分です。スペック ファイルにあるテストのみが中断され、他のすべてのファイルが中断されるわけではありません。今日、この問題について徹底的に調査しましたが、Cypress ではこのような問題は発生していないようです。
だから私は他の解決策を試しています。
1: セマフォ付き
fail_fast:
stop:
when: "true"
エラーが発生するとスクリプトが中断されるはずです。しかし、これは機能しません。エラーが発生した後もテストは実行され続けます。私の推測では、Cypress はすべてのテストが完了したときにのみエラーをスローすると思います。
2: Cypressを起動するスクリプトがあるかもしれないが、アイデアがないので、今ここに私のスクリプトがある。
"cy:run": "npx cypress run",
"cy:run:dev": "CYPRESS_env=dev npx cypress run",
"cy:test": "start-server-and-test start http-get://localhost:4202 cy:run"
ベストアンサー1
編集:この機能は導入されたようですが、Cypress の有料版 (ビジネス プラン) が必要です。詳細:ドキュメント、スレッドにコメントする
元の回答:
これは Cypress で長い間要望されていた機能ですが、何らかの理由でまだ導入されていません。コミュニティによっていくつかの回避策が提案されていますが、それが機能するかどうかは保証されていません。詳細については、Cypress の Github のこのスレッドを確認してください。おそらく、自分のケースに適した回避策が見つかるでしょう。