2016-07-25 14 views
1

説明的なエラーメッセージを表示し、fail()関数を使ってテストを終了しようとしましたが、部分的に成功しました。ここに私のコードは次のとおりです。分度器 - 正しくエラーを処理する...

it('set up internal budget', function(done) { 
    var acceptBudgetButton = element(by.buttonText('Accept Budget')); 
    page.setInternalBudget(); //setting budget values 

    browser.wait(function() { 
     return browser.isElementPresent(acceptBudgetButton); 
    }, 30000, 'Error - Accept Budget button is not visible.'); 
    acceptBudgetButton.click(); 
    done(); 
    done.fail('Unable to setup internal budget. Terminating test run'); 
    }); 

「予算を受け入れる」ボタンは、私はこのスクリプトから3つの事を期待使用できない場合:

1)を参照してください待機時間に続く、エラー「予算Acceptボタンを表示されていません」 out

2)「内部予算を設定できません。 st run "エラー

3)私たちが失敗したので、すぐにテストランが存在するように分度器が必要です。

実際には、最初の期待のみが満たされています。スクリプトが実行され続けていて、「内部予算を設定できません」というエラーが表示されることもありません。そのため、私のdone.failステートメントは無視されているようです。

すべての私の夢/期待を実現するために何を変えるべきですか?

答えて

1

はい、done以降は実行されません。私がやることは、browser.wait()の成功と失敗のハンドラを定義することです。これらの線に沿って何か:

browser.wait(function() { 
    return browser.isElementPresent(acceptBudgetButton); 
}, 30000).then(
    function() { 
     acceptBudgetButton.click(); 
     done(); 
    }, 
    function() { 
     console.log('Error - Accept Budget button is not visible.'); 
     done.fail('Unable to setup internal budget. Terminating test run'); 
}); 
+0

あなたのご回答ありがとうございます!私がまだ抱えている唯一の問題は、スクリプトがすぐに終了しないということです。同じ仕様の次の "its"をすべて実行し、無意味なメッセージやエラーを出力します...私は、分度器出口テストを失敗()関数。しかし、あなたの助けを借りて、私が探していたものが99%得られました。本当に感謝しています! – Misha

+0

@Mishaああ、これはデフォルトの動作であることに注意してください。 ['jasmine-bail-fast'](https://github.com/goodeggs/jasmine-bail-fast)がうまくいくかどうか確認してください。ありがとう。 – alecxe

+0

もう一度ありがとう、私はそれを試してみます。注意して、npmはjasmine-bail-fastをインストールするとかなり疑わしい警告が表示されました。 - [email protected]外来 npm WARNオプション任意依存のスキップが失敗しました/ chokidar/fsevents: npm WARN notsup Not [email protected] 注 - 私はWindows 7を使用しています...うまくいけば、このことはうまくいきます - 私はあなたにお知らせします – Misha