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