概要

Nightwatchは、大規模プロジェクトの設定の構造を改善するために`テスト環境`を提供しています。

`test_settings`辞書の下に複数のセクション(環境)を定義することで、環境ごとに特定の値を上書きできます。

`default`環境が必要です。他のすべての環境はdefaultから継承し、必要に応じて設定を上書きできます。

環境は、すべての基本設定と「default」環境で定義されたすべての設定を継承します。

以下の例では、2つの環境があります

  • `default` (常に必須)
  • integration
nightwatch.json
{
  "src_folders": ["./tests"],
  
"test_settings" : { "default" : { "launch_url" : "http://localhost", "globals" : { "myGlobalVar" : "some value", "otherGlobal" : "some other value" } }, "integration" : { "launch_url" : "http://staging.host", "globals" : { "myGlobalVar" : "other value" } } } }

使用方法

テスト環境は、コマンドラインテストランナーで`--env`引数として、そのキーで参照できます。

nightwatch --env integration

これは、ローカルマシンと継続的インテグレーションサーバーで異なる設定が必要な場合に役立ちます。

組み込み環境

Nightwatchによって自動生成される設定ファイル(`nightwatch.conf.js`)には、いくつかのブラウザ(Firefox、Chrome、Edge、Safari)に対してテストを実行するための、またSelenium Serverや一般的なクラウドテストプロバイダであるBrowserstackとSaucelabsを使用してテストを実行するための、定義済みのテスト環境がいくつか含まれています。

Githubのnightwatch-examplesプロジェクトの一部として利用可能な`nightwatch.conf.js`設定ファイルからの抜粋を以下に示します。

github.com/nightwatchjs/nightwatch-examples/.../nightwatch.conf.js
module.exports = {
  src_folders: ['tests'],

  test_settings: {
    default: {
      webdriver: {
        start_process: true,
        server_path: ''
      }
    },

    safari: {
      desiredCapabilities : {
        browserName : 'safari',
        alwaysMatch: {
          acceptInsecureCerts: false
        }
      },
      webdriver: {
        port: 4445
      }
    },
    
    firefox: {
      desiredCapabilities : {
        browserName : 'firefox'
      },
      
      webdriver: {
        start_process: true,
        port: 4444
      }
    }
  }
}