分度器でテストケースが失敗した場合、テストスイートを終了し、さらにテストケースの実行を停止する方法はありますか?
jasmine
テストフレームワークの場合、最初に質問するのはあなたではありません。
最初の失敗後の終了に関して、関連する公開討論/問題があります、--fail-fast
オプション:
要するに、これは未解決の問題であり、いつかjasmine
に機能が組み込まれるでしょう。現在、サードパーティの jasmine-bail-fast
モジュール。
それとは別に、便利なrealtimeFailure
ジャスミン設定があります。 true
に設定すると、テスト全体が失敗することはありませんが、リアルタイムで(発生直後に)エラーが表示されます。これにより、ユースケースがカバーされる可能性があります。 jasmineNodeOpts
に設定します:
exports.config = {
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
...
jasmineNodeOpts: {
realtimeFailure: true
}
}
jasmine-bail-fast
私の場合はうまくいきませんでした。他のレポートプラグインとの競合が原因かどうかはわかりません。
誰かが同じ問題を抱えている場合。 protractor-fast-fail を試すことができます
exports.config = {
plugins: [{
package: 'protractor-fail-fast'
}],
onPrepare: function() {
jasmine.getEnv().addReporter(failFast.init());
},
afterLaunch: function() {
failFast.clean();
}
}
私にとって完璧に働いた。
Jasmine 2と分度器で最初に失敗したときにテストをスキップするための私のソリューションを次に示します。それが役に立てば幸い。
exports.config = {
onPrepare: function () {
//skip tests after first fail
var specs = [];
var orgSpecFilter = jasmine.getEnv().specFilter;
jasmine.getEnv().specFilter = function (spec) {
specs.Push(spec);
return orgSpecFilter(spec);
};
jasmine.getEnv().addReporter(new function () {
this.specDone = function (result) {
if (result.failedExpectations.length > 0) {
specs.forEach(function (spec) {
spec.disable()
});
}
};
});
}
};
これらすべてのサードパーティのプラグインは必要ありません。ネイティブprocess.exit()
を使用します。
コード例:
it("test", function()
{
...
if(isExit)
{
browser.driver.close().then(function()
{
process.exit(1);
});
}
});
利益。