我刚刚开始使用 Cypress 进行 API 测试自动化。我想使用 Cypress.env 在我的测试文件中访问一些环境变量。 cypress 文档将配置文件 (cypress.json
) 列为存储环境变量的明显位置。
我需要测试来自 40 多家数据服务公司的众多端点。所有 40 项服务的业务逻辑各不相同。
因此,cypress.json
内的 "env"
中的对象数量众多,因此无法在一个文件中进行管理。
我解决这个问题的思路是在 Fixtures 中创建一个环境变量文件,存储每个数据服务的 "env"
对象。但我不确定这是否可能。
此外,一个项目中是否可以有多个 cypress.json
文件?
任何建议将不胜感激。
以下是一个数据服务提供商的 "env"
变量示例。
{
"env": {
"dataService": "XXDataService",
"companyRegNo": "XX4457ZZ",
"language": "EN",
"countryCode": "UK",
"companyType": "Ltd",
"companySearchName": "",
"searchParams": "",
"reportParams": "",
"username": "",
"password": "",
}
}
最佳答案
我也遇到了同样的问题,终于制作了自己的插件。
使用
npm i -D cypress-template-fixtures
- 在
cypress/plugins/index.js
中添加require('cypress-template-fixtures')(on, config);
。
module.exports = (on, config) => {
require('cypress-template-fixtures')(on, config); // Add this line
return config;
};
- 将生成的fixture文件夹
cypress/fixtures.out/
添加到.gitignore
中。 - 在
cypress/fixtures
目录中的普通灯具文件中使用{{VAR_NAME}}
。
cypress/fixtures/example.json
:
{
"name": "{{NAME}}",
"title": "{{TITLE}}",
"email": "{{EMAIL}}",
"body": "{{BODY}}"
}
- 在
cypress.json
或cypress.env.json
中提供VAR_NAME
。 - 或者在系统中提供
CYPRESS_VAR_NAME
或cypress-dotenv .
关于javascript - 从 Cypress Fixture 访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302519/