設定
基本設定
以下は、テスト実行中にNightwatchインスタンスに渡されるデフォルト設定です。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
src_folders |
文字列 | 配列 | globパターン |
なし | テストが配置されているフォルダーの配列(サブフォルダーを除く)。 これが指定されていない場合、テストソースはテストランナーの2番目の引数としてインラインで渡す必要があります。 |
test_settings |
オブジェクト | すべてのテスト環境が定義されているオブジェクト。それぞれが必要に応じてテスト設定を上書きします。他の環境が設定を継承する`default`環境は常に必要です。 詳細は、テスト環境の定義を参照してください。 |
|
webdriver |
オブジェクト | **WebDriver** 関連の設定オプションを含むオブジェクト。 | |
selenium |
オブジェクト | **Selenium Server** 関連の設定オプションを含むオブジェクト。 Selenium Serverを使用しない場合は、代わりに`webdriver`オプションを設定する必要があります。 Nightwatch 1.0以降、Seleniumは、Gridセットアップまたはクラウドテストサービス(SauceLabsやBrowserStackなど)に対してテストする場合にのみ必要です。 |
|
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`プロパティを使用して、個々のテストワーカープロセスに渡されるノードオプションを指定できます。
|
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" : { 機能の完全なリストは、こちらで確認できます。 v2.0以降、Selenium Capabilitiesオブジェクトも指定できます。例
または関数として
|
|
screenshots |
オブジェクト | なし | Seleniumは、コマンドエラーが発生したときにスクリーンショットを生成します。 `on_failure`をtrueに設定すると、失敗またはエラーが発生したテストのスクリーンショットも生成されます。これらはディスクに保存されます。 `v0.7.5`以降、`"on_error"`を`false`に設定することで、コマンドエラーのスクリーンショットを無効にすることができます。 例 "screenshots" : { |
globals |
オブジェクト | テスト内で使用可能になり、環境ごとに上書きできるオブジェクト。例"globals" : {
|
|
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 | これが有効になっている場合、テストスイート名を含むdesiredCapabilities にname プロパティが追加されます。 クラウドテストサービスを使用する場合に便利です。 |
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_process
をtrue
に設定し、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""
の下に配置する必要があります。 webdriver
とselenium
の両方の辞書が存在する場合、selenium
オプションはwebdriver
オプションとマージされます。
"selenium"
設定は、BrowserStack、SauceLabs、CrossBrowserTesting、LambdaTest、または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引数のリスト。 ここでは、ブラウザドライバーのさまざまなオプションを設定できます。例:
|
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'
}
}
}
}
}