これはよくある問題ですが、ベストプラクティスまたは良いプラクティスがあるとは思われません。開発者がビルドサーバーにテスト結果を表示する方法に依存します。
私はあなたの技術的な問題を解決することを望むあなたの特定のユースケースのための解決策を持っています。
私はTeamcityを自分で使用していますが、これもJenkinsで使用するために調整しました。私はAngular CLIを使ってデモンストレーションアプリを作りました。
ジェンキンスやTeamCityなどのビルドサーバーは結果ファイル(Jenkins、通常はJUnitを以下で説明します)またはサービスメッセージをstdout(TeamCity)経由で読み込むだけです。したがって、これらのレコードが書き込まれる前にテスト結果データを操作することができます。これにより、別々のジョブでテストを実行したり、不要なプレフィックスでテストスイートを拡張したりすることなく、カルマ(単位)と分度器(e2e) 。
karma-junit-reporterとjasmine-reportersの2つの追加パッケージが必要です。我々はカルマにカルマ・ジャニット・レポーター、分度器にジャスミン・レポーターを使用します。
これらのパッケージを使用すると、結果がJUnitファイルに書き込まれる前にスイート名を変更できます。これは、ユニットとe2eの区別に役立ちます。
あなたはそれぞれのツールが提供するインストールの指示に従うか、以下の私の実装に従うことができます。
はカルマ - JUnitのレポーターをインストールします。
NPMカルマ - JUnitのレポーターをインストール--save-
:devが
あなたkarma.conf.jsファイルに以下の変更を行います。
プラグイン・アレイにカルマ - JUnitのレポーターを追加します。
require('karma-junit-reporter')
を記者アレイにJUnitの追加:
reporters: ['progress', 'kjhtml', 'junit']
を以下にjunitReporterオブジェクトを追加します。
を junitReporter: {
outputDir: 'testresults',
outputFile: 'karmatest.xml',
suite: 'unit', // whichever prefix you wish to use
useBrowserName: false,
}
ジャスミン-記者をインストールします:書き込みのように、注意してください--save-devの
ジャスミン-記者を
NPMをインストールします。分裂師のためのジャスミン記者文書では、npm install --save-dev [email protected]^2.0.0を実行すべきだと述べていますが、例外処理を行わなくても問題が発生します。私は最新のインストールをお勧めします。
protractor.confのonPrepare機能に次のコードを追加します。JSファイル:
var jasmineReporters = require('jasmine-reporters');
return browser.getProcessedConfig().then(function (config) {
var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: 'testresults',
filePrefix: 'protractor-test-results',
modifySuiteName: function (generatedSuiteName, suite) {
return 'e2e.' + generatedSuiteName; // whichever prefix you wish to use
}
});
jasmine.getEnv().addReporter(junitReporter);
});
あなたは今、テスト、NGのE2E ngを実行しても、次のようにJUnitテスト結果報告書を発行するポストビルドアクションを追加するにはジェンキンスジョブを構成する必要があります。
testresults \ * .xmlの
あなたのジェンキンステスト結果ダッシュボードには次のようになります:

ユニットテストかe2eテストのどちらにも失敗しました。各テスト名には、ユニットかe2eかを判断する接頭辞が付いています。パッケージの下のリンクをクリックして、すべてのe2eまたはすべての単体テストにドリルダウンすることもできます。
あなたが勇敢で時間があれば、よりカスタマイズされた結果を得るために、これらのパッケージと同じ仕事をする独自のユーティリティを書くことができます。
私はこれがあなたが必要とする成果を達成するのに役立つことを願っています。
ありがとうございました
洞察力をお寄せいただき、ありがとうございました。ありがとう –