Karmaがテストに失敗した場合にPowerShellが失敗するのを防ぐにはどうすればよいですか

Azu

問題

ベースラインブランチに対してPowerShellを介してKarmaをEnvironment::Exit(1)実行すると、結果に失敗したテストがある場合に実行された場合と同じようにPowerShellが反応します。これにより、残りのコンポーネントを実行せずにJenkinsビルドが途中で失敗します。これをバイパスして、正当な問題が発生した場合、ターゲットブランチ(コード変更を含むブランチ)に対してkarmaを実行したときに失敗したテストが見つかった場合、または新しい行のコードカバレッジパーセンテージが必要な最小値よりも低い場合にのみジョブが失敗するようにします。

バックグラウンド

私はJenkins、PowerShell、およびKarmaと協力して、Webアプリケーションのコードカバレッジテストを提供しています。Jenkinsには、カルマを次のように実行するPowerShellタスクがあります。

ジョブでは、2つのブランチをチェックアウトしています(1つはベースラインとして機能し、もう1つにはコード/テストの更新が含まれています)。すべてのNuGetパッケージを復元してから、ベースラインブランチのソリューションをビルドします。次に、カルマを実行して現在のカバレッジを取得します。次に、ターゲットブランチのソリューションを構築し、続いてKarmaを実行してコードカバレッジを取得します。SonarQubeを使用して、結果を比較し、新しいラインカバレッジを提供しています。

私がすでに試したこと:

  • 追加する -ErrorAction SilentlyContinue
  • 品質ゲートを調べる
  • のドキュメントを検索する karma start
  • コマンドの最後に追加| $trueします|| $truekarma start

コード例

& $nodePath $karmaPath start $karmaTest --log-level debug

$nodePath node.exeへの単なるファイルパスです

$karmaPath カルマへの単なるファイルパスです

$karmaTest karma.conf.ci.jsファイルへのファイルパスです

ナノトロン

失敗する理由は、返された終了コードが原因です。Jenkins bashスクリプトでコマンドを実行している場合、Jenkinsは残りのすべてのタスクをキャンセルします。ユニットテストに失敗した場合でも、とにかくビルドに合格するべきではありません。それらがもろい場合は、テストをリファクタリングすることをお勧めします。

この問題を回避するには、テストスクリプトの実行後にコマンドをパイプ処理します。例えば

次のように大まかに定義されたpackage.jsonでスクリプトが定義されているとします。

scripts:{
ng: ng;
install: npm install;
test-ci: ng test --karma-config karmaconfig --code-coverage
build: npm build
}

これで、package.jsonで定義されたスクリプトを利用することで、jenkinsbashスクリプトは次のようになります。

npm run install
npm run test-ci || echo "Tests Failed"
npm run build

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

単体テストが失敗した場合、Pythonのカバレッジツールを失敗させるにはどうすればよいですか?

分類Dev

最初のテストケースが失敗した場合にRobotFrameworkテストの実行を停止するにはどうすればよいですか?

分類Dev

JavaScript / Jest:テストが失敗した場合にのみテストケースのログを表示するにはどうすればよいですか?

分類Dev

sbt:テストが失敗した場合にのみtestQuickを実行するタスクを作成するにはどうすればよいですか?

分類Dev

ユーザーが 30 分以上ポストバックしない場合の「ビューステート MAC の検証に失敗しました」エラーを防ぐにはどうすればよいですか?

分類Dev

テストケースが失敗した場合(TestNGを使用)に特定のメソッドを実行するにはどうすればよいですか?

分類Dev

テストが失敗した場合でも、MSTest.exeに0を返すようにするにはどうすればよいですか?

分類Dev

jenkinsが失敗したメッセージをスパムに移動するのを防ぐにはどうすればよいですか?

分類Dev

testngで50%のテスト方法が失敗した場合、自動化を停止するにはどうすればよいですか?

分類Dev

DockerでJestユニットテストが失敗した場合、テストレポートを取得するにはどうすればよいですか?

分類Dev

.thenが失敗した場合にステートメントを実行するにはどうすればよいですか?

分類Dev

呼び出された関数自体がコンテキスト内にある場合に、nodejs vmスクリプト関数呼び出しがコンテキストを失うのを防ぐにはどうすればよいですか?

分類Dev

ネストされたシリアライザーでの検証が失敗した場合、ユーザーの作成を防ぐにはどうすればよいですか?

分類Dev

誰かがJavaで失敗した場合にすべてのスレッドを停止するにはどうすればよいですか?

分類Dev

dpkg削除スクリプトが失敗した場合にパッケージを強制的に削除するにはどうすればよいですか?

分類Dev

Mavenユニットテストが失敗したときにJenkinsビルドを失敗させるにはどうすればよいですか?

分類Dev

Javaでリクエストが失敗した場合、httpレスポンスボディを取得するにはどうすればよいですか?

分類Dev

Firestore:ルールが失敗した場合にユーザーアカウントの作成を停止するにはどうすればよいですか?

分類Dev

AWS APIリクエストが失敗した場合、必要な権限をデバッグするにはどうすればよいですか?

分類Dev

コミットがGitHubチェックに失敗した場合はどうすればよいですか?

分類Dev

JUnit4テストに失敗した場合に `groovy`コマンドをゼロ以外に終了させるにはどうすればよいですか?

分類Dev

APIが失敗した場合に自分自身にアラートを送信するにはどうすればよいですか?

分類Dev

テストの失敗回数が変わった場合にのみ、Jenkinsにビルドを失敗させるにはどうすればよいですか?

分類Dev

テストケースがSOAPUIで失敗した場合でも、続行する前に特定のステップを呼び出してクリーンアップするにはどうすればよいですか?

分類Dev

pytestのパラメータ化を使用して、1つのテストケースが失敗した場合に残りのテストをスキップするにはどうすればよいですか?

分類Dev

現在のテストケースが失敗した場合にafterEachフックをスキップし、その後も次のテストケースを実行し続けるにはどうすればよいですか?

分類Dev

ビルドが失敗した場合にAzureDevOps PRでコメントを作成するにはどうすればよいですか?

分類Dev

最初に失敗したテストケースでテストが停止しないようにするにはどうすればよいですか?

分類Dev

最初に失敗したテストケースでテストが停止しないようにするにはどうすればよいですか?

Related 関連記事

  1. 1

    単体テストが失敗した場合、Pythonのカバレッジツールを失敗させるにはどうすればよいですか?

  2. 2

    最初のテストケースが失敗した場合にRobotFrameworkテストの実行を停止するにはどうすればよいですか?

  3. 3

    JavaScript / Jest:テストが失敗した場合にのみテストケースのログを表示するにはどうすればよいですか?

  4. 4

    sbt:テストが失敗した場合にのみtestQuickを実行するタスクを作成するにはどうすればよいですか?

  5. 5

    ユーザーが 30 分以上ポストバックしない場合の「ビューステート MAC の検証に失敗しました」エラーを防ぐにはどうすればよいですか?

  6. 6

    テストケースが失敗した場合(TestNGを使用)に特定のメソッドを実行するにはどうすればよいですか?

  7. 7

    テストが失敗した場合でも、MSTest.exeに0を返すようにするにはどうすればよいですか?

  8. 8

    jenkinsが失敗したメッセージをスパムに移動するのを防ぐにはどうすればよいですか?

  9. 9

    testngで50%のテスト方法が失敗した場合、自動化を停止するにはどうすればよいですか?

  10. 10

    DockerでJestユニットテストが失敗した場合、テストレポートを取得するにはどうすればよいですか?

  11. 11

    .thenが失敗した場合にステートメントを実行するにはどうすればよいですか?

  12. 12

    呼び出された関数自体がコンテキスト内にある場合に、nodejs vmスクリプト関数呼び出しがコンテキストを失うのを防ぐにはどうすればよいですか?

  13. 13

    ネストされたシリアライザーでの検証が失敗した場合、ユーザーの作成を防ぐにはどうすればよいですか?

  14. 14

    誰かがJavaで失敗した場合にすべてのスレッドを停止するにはどうすればよいですか?

  15. 15

    dpkg削除スクリプトが失敗した場合にパッケージを強制的に削除するにはどうすればよいですか?

  16. 16

    Mavenユニットテストが失敗したときにJenkinsビルドを失敗させるにはどうすればよいですか?

  17. 17

    Javaでリクエストが失敗した場合、httpレスポンスボディを取得するにはどうすればよいですか?

  18. 18

    Firestore:ルールが失敗した場合にユーザーアカウントの作成を停止するにはどうすればよいですか?

  19. 19

    AWS APIリクエストが失敗した場合、必要な権限をデバッグするにはどうすればよいですか?

  20. 20

    コミットがGitHubチェックに失敗した場合はどうすればよいですか?

  21. 21

    JUnit4テストに失敗した場合に `groovy`コマンドをゼロ以外に終了させるにはどうすればよいですか?

  22. 22

    APIが失敗した場合に自分自身にアラートを送信するにはどうすればよいですか?

  23. 23

    テストの失敗回数が変わった場合にのみ、Jenkinsにビルドを失敗させるにはどうすればよいですか?

  24. 24

    テストケースがSOAPUIで失敗した場合でも、続行する前に特定のステップを呼び出してクリーンアップするにはどうすればよいですか?

  25. 25

    pytestのパラメータ化を使用して、1つのテストケースが失敗した場合に残りのテストをスキップするにはどうすればよいですか?

  26. 26

    現在のテストケースが失敗した場合にafterEachフックをスキップし、その後も次のテストケースを実行し続けるにはどうすればよいですか?

  27. 27

    ビルドが失敗した場合にAzureDevOps PRでコメントを作成するにはどうすればよいですか?

  28. 28

    最初に失敗したテストケースでテストが停止しないようにするにはどうすればよいですか?

  29. 29

    最初に失敗したテストケースでテストが停止しないようにするにはどうすればよいですか?

ホットタグ

アーカイブ