javascript - 在 cypress 中管理多个站点
问题描述
以下是我拥有的三个国家/地区网站 -
站点 1 - https://example.com/uk
站点 2 - https://example.com/fr
站点 3 - https://example.com/ie
所有 3 个站点都使用相同的代码库,并且基于我的代码中的国家(uk
| fr
| ie
),我将一些默认配置,如国家特定文本和一些功能启用/禁用开关等传递到内页。
在我的柏树中,我创造了fixtures
-
/夹具-
/uk
-uk-config.json
/fr
-fr-config.json
/ie
-ie-config.json
我被文件夹中的文件夹结构困住了,integration
不知道推荐的方法。请帮助我。
选项1-
/整合-
/uk
-homepage.spec.js
-plp.spec.js
-pdp.spec.js
-cart.spec.js
/fr
-homepage.spec.js
-plp.spec.js
-pdp.spec.js
-cart.spec.js
/ie
-homepage.spec.js
-plp.spec.js
-pdp.spec.js
-cart.spec.js
这种方法的问题 - 虽然此代码在国家/地区基础上更加隔离,但这里有很多代码重复,并且随着我们推出其他国家/地区商店而增加。
选项 2 -
/一体化 -
-homepage.spec.js
-plp.spec.js
-pdp.spec.js
-cart.spec.js
在这个过程中,来自固定装置的国家特定配置。TBH,我不知道我该如何管理它,如果有人发现这是一种更好的方法并且可以提供一些指向这将非常有帮助,那就太好了。
解决方案
问题:
如果我清楚地理解了您的问题,您想针对不同的国家/地区运行相同的测试集,并且您在阅读时遇到问题,并且如果为了测试相同的集合而添加太多国家/地区,则套件会增加的测试。正确的 ??
解决方案:
您可以COUNTRY
从命令行将变量作为节点环境变量传递,并将其分配为赛普拉斯环境变量并在测试中读取它。
"test": "COUNTRY=$COUNTRY ./node_modules/.bin/cypress open --env COUNTRY=$COUNTRY"
您的运行命令应如下所示
COUNTRY=fr npm run test
COUNTRY=in npm run test
COUNTRY=uk npm run test
COUNTRY=whatever npm run test
let json = require('config.json');
export const getCountryUrl = () => {
return json[Cypress.env().COUNTRY]['url']
}
{
"uk": {
"url": "https://uk-website"
},
"fr": {
"url": "https://fr-website"
}
}
推荐阅读
- kernel - 为什么我的高斯(rbf)内核没有返回正定矩阵
- stored-procedures - 无法在 Redshift Aginity 和 aginity pro 中创建存储过程
- python - 没有不同配置文件的用户分析算法
- c - 返回值的函数定义中缺少什么类型的错误?
- r - 如何将矢量转换为单个文本?
- r - 接受裸(来自 rlang)或字符串作为函数输入
- sql - 如何通过sql生成session_id?
- mysql - 从一个表中选择多行为一行
- spss-modeler - 如何在 SPSS Modeler 中对列名使用通配符搜索来选择列
- mysql - 为 MySQL 创建带有插入的表