基本設定

以下は、テスト実行中にNightwatchインスタンスに渡されるデフォルト設定です。

名前 タイプ デフォルト 説明
src_folders 文字列 | 配列 | globパターン なし テストが配置されているフォルダーの配列(サブフォルダーを除く)。

これが指定されていない場合、テストソースはテストランナーの2番目の引数としてインラインで渡す必要があります。
test_settings オブジェクト すべてのテスト環境が定義されているオブジェクト。それぞれが必要に応じてテスト設定を上書きします。他の環境が設定を継承する`default`環境は常に必要です。

詳細は、テスト環境の定義を参照してください。
webdriver オブジェクト **WebDriver** 関連の設定オプションを含むオブジェクト。
selenium オブジェクト **Selenium Server** 関連の設定オプションを含むオブジェクト。 Selenium Serverを使用しない場合は、代わりに`webdriver`オプションを設定する必要があります。
Nightwatch 1.0以降、Seleniumは、Gridセットアップまたはクラウドテストサービス(SauceLabsBrowserStackなど)に対してテストする場合にのみ必要です。
custom_commands_path 文字列 | 配列 | globパターン なし カスタムコマンドのロード元となる場所。
custom_assertions_path 文字列 | 配列 | globパターン なし カスタムアサーションのロード元となる場所。
page_objects_path 文字列 | 配列 | globパターン なし ページオブジェクトファイルのロード元となる場所。
globals_path 文字列 なし ロードされ、メインクライアントインスタンスのプロパティ`globals`としてテストで使用可能になる外部グローバルモジュールの場所。

グローバルは、`test_settings`環境内で定義/上書きすることもできます。
backwards_compatibility_mode
v2.0以降
真偽値 false Nightwatch v1.xでは、`await`演算子と組み合わせて使用​​すると、APIコマンドは完全な結果オブジェクトを`{value:`<VALUE>`}`として返しますが、v2では値が直接返されます。コールバックを使用する場合、動作は変更されません。
disable_global_apis
v2.0以降
真偽値 false `"browser"`、`"element()"`、`"expect()"`などのグローバルAPIを無効にします。これは、Nightwatchをサードパーティのライブラリと組み合わせて使用​​する場合に必要になることがあります。

テストランナー設定

以下の設定は、組み込みのCLIテストランナーの動作を制御するために使用されます。

名前 タイプ デフォルト 説明
test_runner 文字列|オブジェクト "default" テストを実行するときに使用するテストランナーを指定します。値は、`default`(組み込みのnightwatchランナー)または`mocha`のいずれかです。

例:`"test_runner":{"type":"mocha"、"options":{"ui":"tdd"}}`
parallel_process_delay 整数 10 並列モードで実行しているときに、子プロセスの開始間の遅延(ミリ秒単位)を指定します。
enable_fail_fast
v2.0以降
真偽値 false 最初のテスト失敗が発生したときにテスト実行を中止できるようにします。残りのテストスイートはスキップされます。
test_workers 真偽値|オブジェクト false それぞれにテストワーカーを使用して、個々のテストスイートを並列で実行するかどうか。`true`に設定すると、テストを並列で実行し、ワーカーの数を自動的に決定します。

オブジェクトに設定すると、ワーカーの数を` "auto"`または`number`として指定できます。

例:`"test_workers":{"enabled":true、 "workers": "auto"}`

v1.3.7以降、`node_options`プロパティを使用して、個々のテストワーカープロセスに渡されるノードオプションを指定できます。




- これは`process.execArgv`のすべてを渡します

"test_workers": {
  "enabled": true,
  "workers": "auto",
  "node_options": "inherit"
},



- これは、指定されたCLIオプションのみを渡します

"test_workers": {
  "enabled": true,
  "workers": "auto",
  "node_options": ["--inspect"]
},

unit_tests_mode 真偽値 false テストをユニットテストモードで実行するかどうかを制御します。つまり、セッションは自動的に作成されません。

テストセッション設定

これらの設定は、テストセッションの動作を微調整し、その過程で使用できる可能性のあるプロパティを定義するために使用されます。

`baseUrl`プロパティの設定

この`baseUrl`(または`launchUrl`)プロパティは、テストで使用されるメインのNightwatch APIで利用できるようになります。その値は、使用される環境によって異なります。Nightwatch Runnerセクションのテスト環境の詳細。

`integration`環境を(`--env integration`で)指定してテストを実行すると、`baseUrl`は設定に従って`http://staging.host`に設定されます。それ以外の場合は、`default`環境で定義された値(つまり、`http://localhost`)になります。

module.exports = {
  'Demo test' : function (browser) {
    browser
      .url(browser.baseUrl)
      // ...
      .end();
  }
};
名前 タイプ デフォルト 説明
baseUrl 文字列 なし 後でテストでロードするメインURLとして使用できるURL。テストが異なる環境で実行され、それぞれに異なるURLがある場合に役立ちます。

エイリアス:`base_url`、`launch_url`、`launchUrl`。
desiredCapabilities
エイリアス:`capabilities`
オブジェクト | 関数 | Selenium Capabilities 新しいセッションが作成されるときのWebDriver機能。たとえば、他の機能とともにブラウザ名を指定できます。


"desiredCapabilities" : {
  "browserName" : "firefox",
  "acceptInsecureCerts" : true
}

機能の完全なリストは、こちらで確認できます。

v2.0以降、Selenium Capabilitiesオブジェクトも指定できます。例
const firefox = require('selenium-webdriver/firefox');

const options = new firefox.Options() .addExtensions('../../../path/to/extension.xpi');
module.exports = { src_folders: ['tests'], test_settings: { default: { browserName: 'firefox', desiredCapabilities: options } } };

または関数として
module.exports = {
  src_folders: ['tests'],
  test_settings: {
    default: {
      browserName: 'firefox',
      desiredCapabilities() {
        const firefox = require('selenium-webdriver/firefox');
        
const options = new firefox.Options() .addExtensions('../../../path/to/extension.xpi');
return options; } } } };
screenshots オブジェクト なし Seleniumは、コマンドエラーが発生したときにスクリーンショットを生成します。 `on_failure`をtrueに設定すると、失敗またはエラーが発生したテストのスクリーンショットも生成されます。これらはディスクに保存されます。

`v0.7.5`以降、`"on_error"`を`false`に設定することで、コマンドエラーのスクリーンショットを無効にすることができます。



"screenshots" : {
  "enabled" : true,
  "on_failure" : true,
  "on_error" : false,
  "path" : ""
}
globals オブジェクト テスト内で使用可能になり、環境ごとに上書きできるオブジェクト。例

"globals" : {
  "myGlobal" : "some_global"
}



グローバルは外部ファイルで定義することもできます。外部グローバルの詳細。

persist_globals 真偽値 false テストスイートの実行間で同じグローバルオブジェクトを保持するか、テストスイートごとに(ディープ)コピーを作成する場合は、これを`true`に設定します。
start_session 真偽値 true WebDriverセッションを自動的に開始するかどうか。これは通常、Webdriverサーバーと対話しないユニット/統合テストを実行する場合に`false`に設定されます。
end_session_on_fail 真偽値 true 通常はアサーションの失敗後に、テストが終了したときにセッションを自動的に終了します。
skip_testcases_on_fail 真偽値 true 1つのテストケースが失敗した場合、同じテストスイート(つまり、テストファイル)から残りのテストケース(またはテストステップ)をスキップします。
use_xpath 真偽値 false デフォルトのロケーター戦略としてxpathを使用します。
use_ssl 真偽値 false https経由でリモートGridサーバーに接続する場合は、trueに設定します。 また、portを443に設定することを忘れないでください。
sync_test_names
真偽値 true これが有効になっている場合、テストスイート名を含むdesiredCapabilitiesnameプロパティが追加されます。 クラウドテストサービスを使用する場合に便利です。
persist_globals 真偽値 false テストスイートの実行間で同じグローバルオブジェクトを保持するか、テストスイートごとに(ディープ)コピーを作成する場合は、これを`true`に設定します。
selenium_host
非推奨 - selenium.hostを使用してください
文字列 localhost Seleniumサーバーが接続を受け入れるホスト名/ IP。
selenium_port
非推奨 - selenium.portを使用してください
整数 4444 Seleniumサーバーが接続を受け入れるポート番号。

フィルタリング設定

以下の設定を使用して、テストファイルをフィルタリングする方法を定義できます。

名前 タイプ デフォルト 説明
exclude 配列 スキップするフォルダまたはファイルパターンの配列(メインソースフォルダからの相対パス)。


"exclude" : ["excluded-folder"]
または
"exclude" : ["test-folder/\*-smoke.js"]
filter 文字列 テストのロード時に使用されるフォルダまたはファイルパターン。 このパターンに一致しないファイルは無視されます。


"filter" : "tests/\*-smoke.js"
skipgroup
文字列 テストのグループ(サブフォルダ)をスキップします。 カンマ区切りの値のリストにすることができます(スペースなし)。
skiptags
文字列 タグ名でテストをスキップします。 カンマ区切りの値のリストにすることができます(スペースなし)。

出力設定

以下の設定を使用して、テスト実行時の出力とロギングを制御できます。

名前 タイプ デフォルト 説明
output_folder 文字列 tests_output JUnit XMLレポートファイルが保存される場所。
disable_colors 真偽値 false CLI出力のカラーリングをグローバルに無効にするかどうかを制御します。
live_output 真偽値 false このオプションは、テストを並列実行する場合にのみ役立ちます。 出力をバッファリングするかどうかを制御します。
silent 真偽値 true WebDriverまたはSeleniumサーバーからの拡張HTTPトラフィックコマンドログを表示するかどうか。
output 真偽値 true CLI出力を完全に無効にするために使用されます。
detailed_output 真偽値 true デフォルトでは、テストの実行中に詳細なアサーション出力が表示されます。 テストケース名と合格/不合格ステータスのみを表示する場合は、これをfalseに設定します。 テストを並列実行する場合、詳細出力はデフォルトで無効になっています。
disable_error_log 真偽値 false テストの実行中にエラーを表示したくない場合(エラーは常に最後に表示されます)、これをtrueに設定します。
output_timestamp 真偽値 false ロギング出力の横にタイムスタンプを表示する場合は、これをtrueに設定します。
log_screenshot_data 真偽値 false スクリーンショットを撮るときに、(詳細)ログにBase64画像データを表示するために使用されます。

WebDriver設定

以下は、Webdriverサービスのオプションです。 NightwatchはWebdriverプロセスを自動的に起動および停止できるため、自分で管理する必要がなく、テストのみに集中できるため非常に便利です。

これを有効にするには、start_processtrueに設定し、server_path内にバイナリファイルの場所を指定します。

名前 タイプ デフォルト 説明
start_process 真偽値 false これが有効になっている場合、Webdriverサーバーは子プロセスでバックグラウンドで実行され、自動的に起動/停止されます。
Nightwatchは、Chromedriver、Geckodriver(Firefox)、Safaridriver、およびSelenium Serverの管理をサポートしています。
server_path 文字列 なし start_processが有効になっている場合にのみ役立ちます。
host 文字列 Webdriverサービスが別のマシンで実行されている場合にのみ必要です。
port 整数 Webdriverサービスがリッスンするポート番号、および/またはNightwatchが接続を試みるポート番号。
ssl 真偽値 HTTPS経由でリモート(クラウド)サービスに接続する場合は、trueに設定する必要があります。 また、ポートを443に設定することを忘れないでください。
log_path 文字列|ブール値 なし Webdriverサービスログファイルoutput.logファイルが配置される場所。 デフォルトは現在のディレクトリです。
Webdriverロギングを無効にするには、これをfalseに設定します
log_file_name 文字列|なし なし デフォルトでは、ログファイル名はテストスイートファイル名と同じですが、別のファイル名を指定することもできます。
cli_args オブジェクト なし Webdriverプロセスに渡されるcli引数のリスト。 これはWebdriverの実装ごとに異なります。
keep_alive 真偽値|オブジェクト false HTTPキープアライブを有効にします。 trueに設定すると、keepAliveオプションがデフォルト設定(keepAliveMsecs = 3000)で有効になります。
オブジェクトに設定すると、keepAliveMsecs値を指定できます。

例:"keep_alive" : {"enabled" : true, "keepAliveMsecs" : 2000}
timeout_options オブジェクト timeout: 60000
retry_attempts: 0
Webdriverサービスへのリクエストは、timeoutミリ秒でタイムアウトになります。 再試行はretry_attempts回数行われます。


{timeout: 15000, retry_attempts: 5}
status_poll_interval
v1.2.2以降
整数 100 Webdriverサーバーが稼働しているかどうかを確認するときのステータスpingチェック間のインターバル(ミリ秒単位)
max_status_poll_tries
v1.2.2以降
整数 5 タイムアウトエラーを返す前に、Webdriverサーバーが稼働しているかどうかを確認するときのpingステータスチェックの最大試行回数。
process_create_timeout
v1.2.2以降
整数 120000 子プロセスの生成とステータスの確認を含む、Node.jsプロセスが作成されて実行されるのを待つ全体の時間(ミリ秒単位)(デフォルトは2分)
username 文字列 なし 通常、クラウドテストSeleniumサービスにのみ必要です。 サーバーが資格情報を必要とする場合、このユーザー名はAuthorizationヘッダーの計算に使用されます。

値は環境変数にすることもできます。その場合は次のようになります。
"username" : "${SAUCE_USERNAME}"
access_key 文字列 なし このフィールドは、usernameとともにAuthorizationヘッダーの計算に使用されます。

usernameと同様に、値は環境変数にすることもできます
"access_key" : "${SAUCE_ACCESS_KEY}"
proxy 文字列 なし Webdriver(またはSelenium)サービスへのプロキシリクエスト。 http、https、socks(v5)、socks5、sock4、およびpacが受け入れられます。
NPMから個別の pakketジとしてインストールする必要があるproxy-agentを使用します。

例:http://user:pass@host:port
default_path_prefix 文字列 Selenium Serverを使用する場合に時々必要です。 すべてのリクエストに追加されるプレフィックス(例:/ wd / hub)。

Seleniumサーバー設定

Selenium Serverを使用している場合、接続関連の設定は"selenium""の下に配置する必要があります。 webdriverseleniumの両方の辞書が存在する場合、seleniumオプションはwebdriverオプションとマージされます。

"selenium"設定は、BrowserStackSauceLabsCrossBrowserTestingLambdaTest、またはTestingBotなどのクラウドベースのテストプロバイダーへの接続を構成する場合にも使用する必要があります。

名前 タイプ デフォルト 説明
start_process 真偽値 false Seleniumプロセスを自動的に管理するかどうか。
server_path 文字列 なし Selenium jarファイルの場所。 start_processが有効になっている場合は、これを指定する必要があります。
例:bin/selenium-server-standalone-2.43.0.jar
log_path 文字列|ブール値 なし Selenium output.logファイルが配置される場所。 デフォルトは現在のディレクトリです。
Seleniumロギングを無効にするには、これをfalseに設定します
version2 真偽値 false レガシーSelenium Server 2を使用する必要がある場合は、これをtrueに設定します。
port 整数 4444 Seleniumがリッスンするポート番号、および/またはNighwatchが接続を試みるポート番号。
cli_args オブジェクト なし Seleniumプロセスに渡されるcli引数のリスト。 ここでは、ブラウザドライバーのさまざまなオプションを設定できます。例:

  • webdriver.firefox.profile:Seleniumはデフォルトでセッションごとに新しいFirefoxプロファイルを作成します。 既存のFirefoxプロファイルを使用する場合は、ここでその名前を指定できます。
    Firefoxドライバー引数の完全なリストは、こちらで入手できます。
  • webdriver.chrome.driver:Nightwatchは、Chromeブラウザを使用してテストを実行することもできます。 これを有効にするには、ChromeDriverバイナリをダウンロードし、ここでその場所を指定する必要があります。 また、desiredCapabilitiesオブジェクトでブラウザ名としてchromeを指定することを忘れないでください。
    詳細については、ChromeDriverのWebサイトをご覧ください。
  • webdriver.ie.driver:Nightwatchは、Internet Explorerでも動作します。 これを有効にするには、IEドライバーバイナリをダウンロードし、ここでその場所を指定する必要があります。

    または、NPMからパッケージiedriverをインストールすることもできます。

    また、desiredCapabilitiesオブジェクトでブラウザ名として「internet explorer」を指定する必要があります。

Seleniumの構成例

Firefox、Chrome、およびInternet ExplorerをサポートするローカルSelenium Serverを使用するnightwatch.conf.jsの一部としての構成例を次に示します。

次のNPMパッケージが現在のプロジェクトにインストールされていると想定されています

module.exports = {
  src_folders: [],
  
test_settings: { default: { launch_url: 'https://nightwatch.dokyumento.jp' },
selenium: { // Selenium Server is running locally and is managed by Nightwatch selenium: { start_process: true, port: 4444, server_path: require('selenium-server').path, cli_args: { 'webdriver.gecko.driver': require('geckodriver').path, 'webdriver.chrome.driver': require('chromedriver').path, 'webdriver.ie.driver': process.platform === 'win32' ? require('iedriver').path : '' } }, webdriver: { start_process: false } },
'selenium.chrome': { extends: 'selenium', desiredCapabilities: { browserName: 'chrome', chromeOptions: { } } },
'selenium.firefox': { extends: 'selenium', desiredCapabilities: { browserName: 'firefox' } },
'selenium.ie': { extends: 'selenium', desiredCapabilities: { browserName: 'internet explorer' } } } }

BrowserStackの構成例

Browserstackは、最も人気のあるクラウドテストプラットフォームの1つです。 Nightwatchで使用する方法は非常に簡単で、自動生成されたnightwatch.conf.jsファイルに構成があります。

アカウントを取得したら、次の環境変数を設定する必要があります。 DotenvファイルもNightwatchでサポートされています。

  • BROWSERSTACK_USER
  • BROWSERSTACK_KEY

ネットワークパフォーマンスを向上させるために、HTTPキープアライブも有効にしてください。

module.exports = {
  src_folders: [],
  
webdriver: { keep_alive: true, timeout_options: { timeout: 60000, retry_attempts: 3 } }
test_settings: { default: { launch_url: 'https://nightwatch.dokyumento.jp' },
browserstack: { selenium: { host: 'hub-cloud.browserstack.com', port: 443 },
// More info on configuring capabilities can be found on: // https://www.browserstack.com/automate/capabilities?tag=selenium-4 desiredCapabilities: { 'bstack:options' : { local: 'false', userName: '${BROWSERSTACK_USER}', accessKey: '${BROWSERSTACK_KEY}', } } },
'browserstack.chrome': { extends: 'browserstack', desiredCapabilities: { browserName: 'chrome', chromeOptions : { } } },
'browserstack.firefox': { extends: 'browserstack', desiredCapabilities: { browserName: 'firefox' } },
'browserstack.ie': { extends: 'browserstack', desiredCapabilities: { browserName: 'IE', browserVersion: '11.0', 'bstack:options' : { os: 'Windows', osVersion: '10', local: 'false', seleniumVersion: '3.5.2', resolution: '1366x768' } } } } }