アサーション
組み込みの拡張可能なassert
/verify
ライブラリは、Nightwatchインスタンス上で要素に対するアサーションを実行する同じメソッドを含む2つの名前空間として利用できます。
.assert
- アサーションが失敗した場合、テストは終了し、他のすべてのアサーションをスキップします。.verify
- アサーションが失敗した場合、テストは失敗をログに記録し、他のアサーションを続行します。
以下はテストを終了します
browser.assert.visible('.non_existing');
ただし、これは失敗をログに記録し、続行します
browser.verify.visible('.non_existing');
基本的なアサーション
Node.js assert モジュールのメソッドも、.assert
/.verify
名前空間で利用でき、使用できます。
否定(".not")アサーション
バージョン1.3以降、すべてのアサーション(カスタム定義のものを含む)には、反対をアサートするために使用できる".not"
の対応物が存在します。
したがって、elementNotPresent
、cssClassNotPresent
、hidden
のようなアサーションは廃止され、非推奨になりました。
例
describe('Demo .not assertion', function() {
it('demo test', function(browser) {
browser.init();
browser
.assert.not.elementPresent('.not_present') // previously .assert.elementNotPresent()
.assert.not.visible('.non_visible') // previously .assert.hidden()
.assert.not.urlContains('http://');
// ...
})
})
自動再試行
デフォルトでは、Nightwatchは失敗したアサーションを最大5000msまで自動的に再試行します。これは、globals
のプロパティretryAssertionTimeout
(ミリ秒単位)を設定することで構成できます(テストグローバルを使用した作業も参照してください)。
指定されたタイムアウトに達すると、テストランナーは再試行を諦め、アサーションを失敗としてマークします。
設定例
{
src_folders: ['tests'],
test_settings: {
default: {
launch_url: 'https://nightwatch.dokyumento.jp',
globals: {
myGlobalVar: 'some value',
retryAssertionTimeout: 5000
}
}
}
}