アサーション

組み込みの拡張可能な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"の対応物が存在します。

したがって、elementNotPresentcssClassNotPresenthiddenのようなアサーションは廃止され、非推奨になりました。

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 } } } }