概述

Nightwatch 提供了 测试环境 来更好地维护大型项目的配置结构。

你可以在 test_settings 字典中定义多个部分(环境),以便你可以在每个环境中覆盖特定值。

需要一个 "default" 环境。所有其他环境都继承自默认环境,可以根据需要覆盖设置。

一个环境继承所有基本设置和在 "default" 环境中定义的所有设置。

示例

在下面的示例中,有两个环境

  • default(始终需要)
  • integration
nightwatch.json
{
  "src_folders": ["./tests"],
  
"test_settings" : { "default" : { "launch_url" : "https://127.0.0.1", "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
      }
    }
  }
}