无法在无头Chrome中运行我的CodeceptJS测试用例

时间:2019-11-11 09:49:41

标签: automated-tests google-chrome-headless codeceptjs

我为我的应用程序设置了CodeceptJS框架,并且测试运行顺利。 但是现在我希望他们使用无头铬。尝试了官方网站上提到的一些内容,但对我不起作用。

我尝试使用npx codeceptjs run --verbose运行测试。

我的codecept.conf.js文件如下:

exports.config = {
  tests: './tests/features/**/*_test.js',
  output: './tests/output',
  helpers: {
    WebDriver: {
      smartwait: 10000,
      waitForTimeout: 10000,
      url: 'https://affinity.sourcefuse.com',
      browser: 'chrome',
      windowSize: 'maximize',
      chromeOptions: {
        args: [ "--headless", "--disable-gpu", "--window-size=800,600"]
      }
    }
  },
  include: {
    I: './steps_file.js',
    createDatasetPage: 'tests/pages/createDataset.js',
  },
  bootstrap: null,
  mocha: {},
  name: 'dashboard',
  plugins: {
    "allure": {
      "enabled": true
    },
    wdio: {
      enabled: true,
      services: ['selenium-standalone']
    }
  }
}

实际:Chrome已启动且测试开始运行。

预期:我希望它可以在无头的chrome上运行。

1 个答案:

答案 0 :(得分:1)

chromeOptions需要包装在desiredCapabilities中,您的配置应如下所示:

exports.config = {
  tests: './tests/features/**/*_test.js',
  output: './tests/output',
  helpers: {
    WebDriver: {
      smartwait: 10000,
      waitForTimeout: 10000,
      url: 'https://affinity.sourcefuse.com',
      browser: 'chrome',
      windowSize: 'maximize',
      desiredCapabilities: {
        chromeOptions: {
          args: ["--headless", "--disable-gpu", "--no-sandbox"]
        }
      }
    }
  },
  include: {
    I: './steps_file.js',
    createDatasetPage: 'tests/pages/createDataset.js',
  },
  bootstrap: null,
  mocha: {},
  name: 'dashboard',
  plugins: {
    "allure": {
      "enabled": true
    },
    wdio: {
      enabled: true,
      services: ['selenium-standalone']
    }
  }
}

我已经从windowSize中删除了args,因为它已经用windowSize进行了设置,而是添加了no-sandbox,这是自动化测试的建议。