概要

これはNightwatch v2.3.0で追加された新しいコマンドで、.debug() コマンドをブレークポイントとして使用することで、テストを任意の時点で一時停止し、REPLインターフェース(ターミナルで利用可能)を使用して、利用可能なNightwatchコマンドとアサーションを試して、実行中のブラウザに対してリアルタイムで実行されるのを確認できます。

その間、ユーザーはブラウザを操作したり、DevToolsを使用してデバッグしたりすることもできます。インターフェースは複数行のコード入力とオートコンプリート機能もサポートしています。

使い方

注: .debug() コマンドを使用する際は、async/await を使用してください。そうしないと、適切な結果がインターフェースに返されません。

it('demos debug command', async function(browser) {
  await browser.debug();

  // with no auto-complete
  await browser.debug({preview: false});

  // with a timeout of 6000 ms (time for which the interface
  // would wait for a result, default is 5500ms).
  await browser.debug({timeout: 6000})
});

tests/duckDuckGo.js
describe('duckduckgo debug example', function() {
  // function passed as second argument to `it` should be `async`.
  it('Search Nightwatch.js and check results', async function(browser) {
    await browser
      .url('https://duckduckgo.com')
      .debug()
      .waitForElementVisible('#search_form_input_homepage')
      .sendKeys('#search_form_input_homepage', ['Nightwatch.js'])
      .click('#search_button_homepage')
      .assert.visible('.results--main')
      .assert.textContains('.results--main', 'Nightwatch.js');
  });
});

debug() command output