0

我在夹具中有两个数据文件(dataUAT.json 和 dataQA.json),我在其中获取我的规范文件的数据。假设我有不同的环境,如 UAT 和 QA。我想将 dataUAT.json 文件用于 UAT 环境,将 dataQA.json 文件用于 QA 环境。有没有办法在不改变代码的情况下在它们之间进行权衡?就像直接从命令行更改它一样?

4

2 回答 2

1

您可以从命令行传入一个环境变量,而不是修改您的插件:

cypress run --env fixtureEnvironment=UAT
cypress run --env fixtureEnvironment=QA

然后,您可以在查找夹具时引用此环境变量。

cy.fixture(
  `data${Cypress.env('fixtureEnvironment') ?? 'QA'}`)
.then(...);

在上面,我包含了一个空值合并运算符来检查正在设置的变量,如果不是,则默认为 QA。

于 2022-01-19T19:19:24.617 回答
0

Cypress docs有一个例子,我也有一个repo,它也展示了这个和 cypress-grep。

基本上,您需要plugins/index.js通过添加以下内容来进行一些调整:

/ promisified fs module
const fs = require('fs-extra')
const path = require('path')

function getConfigurationByFile(file) {
  const pathToConfigFile = path.resolve('..', 'config', `${file}.json`)

  return fs.readJson(pathToConfigFile)
}

// plugins file
module.exports = (on, config) => {
  // accept a configFile value or use development by default
  const file = config.env.configFile || 'development'

  return getConfigurationByFile(file)
}
于 2022-01-19T18:59:32.193 回答