3

リモート サーバーでの実行中にステップ エラーが発生するたびに、失敗したステップをキャプチャして、残りのシナリオの実行を続行したいと考えています。キャプチャされたステップは、レポート目的でファイルに含まれます。これは可能性がありますか?私が他の場所で見たすべての回答は、先に進む前にテストを修正する必要があると言っています。同意しますが、リモートではなく、ローカルで実行しているときにのみテストを停止したい.

➜ customer git:(pat104) ✗ cucumber.js -f progress (pat104⚡) ...F-----Failed scenario: View and select first contact from contact history ...F-Failed scenario: View and select a contact from multiple contacts in history ..................................................F---Failed scenario: Navigating to profile with url and enrollmentId ...................................................F-Failed scenario: Successful MDN Search with 1 result returned. Tech Selects and continues .............FFailed scenario: Successful MDN with multiple results

4

3 に答える 3

3

ステップ定義の 1 つが .waitForExist を間違って使用していたことが判明しました。テストは次のように書かれました。

this.browser
        .waitForExist('#someElement', 1000, callback)

Callback は .waitForExist のパラメーターではなく、次のように書き直しました。

.waitForExist('#someElement',1000).then(function (exists) {
            assert.equal(exists, true, callback);
        })
于 2015-08-03T20:22:06.273 に答える
0

これはデフォルトの動作ですね。コマンド例

cucumber.js -f json > cucumberOutput.json
于 2015-07-30T20:09:11.340 に答える
0

さて、以下のようにテスト自体で管理する必要がありcallback.fail(e)ます。grunt-cucumberjs のようなライブラリを使用して、これらのエラーを素敵な HTML レポートに追加できます。

this.Then(/^the save to wallet button reflects the offer is saved$/, function (callback) {
        merchantPage(this.nemo).doStuff().then(function () {
            callback();
        }, function (e) {
            callback.fail(e); //add this to report
        });
});

または、フックを使用して、シナリオが失敗したかどうかを確認して報告することもできます (スクリーンショットを撮るか、ログを追加するなど)。

 this.After(function (scenario, callback) {
        var driver = this.nemo.driver;
        if(scenario.isFailed()){
            driver.takeScreenshot().then(function (buffer) {
                scenario.attach(new Buffer(buffer, 'base64').toString('binary'), 'image/png');
            });
        }
        driver.quit().then(function () {
                callback();
       });
 });
于 2015-07-31T15:44:57.290 に答える