javascript - 根据我需要在其中运行套件的环境更改 .page URL
问题描述
我们一直在使用我们的暂存环境构建我们的自动化套件,但很快就会上线,并希望准备好告诉项目在哪里运行(暂存、生产)。
环境中站点之间的唯一区别是 URL。我的问题是,从头到尾,如何通过 CLI 选项设置 .page URL?
现在,我创建了一个环境配置文件,其中包含我们的暂存和生产 URL,然后我将数据调用到我的测试文件中。现在这很好,但我需要创建一个脚本,其中包含在运行时设置环境的选项,而无需在启动之前进行手动查找和替换。
我在网上环顾四周,发现我认为是代码片段和一般说明,但我不是一个内心的开发者,而且会睁一只眼闭一只眼。如果我能为此获得 ELI5,那就太棒了。
我现在正在做的例子:
const env = require('../environment_variables.json')
fixture `blog`
.page `${env.production}`
然后我在启动套件之前手动将生产更改为登台,反之亦然。
由于该项目将从 CICD 运行,我希望能够在我的 CLI 和脚本中执行类似的操作:
testcafe env=production
然后将在每个测试文件的 .page 调用所在的位置设置 env 值。
谢谢!
解决方案
有不同的方法可以做到这一点。在这种情况下我已经成功地使用了环境变量,所以我会分享这个解决方案,因为它可以解决你的问题。
我config.json
在项目的根目录中创建:
{
"baseUrl": {
"dev": "https://dev.com/",
"staging": "https://staging.com/",
"prod": "https://prod.com/"
}
}
然后我在某个地方创建了两个辅助函数Helpers/env.js
:
import config from '../config';
function getEnv () {
return process.env.TESTCAFE_ENV;
}
function getBaseUrl () {
return config.baseUrl[getEnv()];
}
export { getEnv, getBaseUrl };
然后在我的测试文件中Tests/
:
import { getBaseUrl } from '../Helpers/env';
const baseUrl = getBaseUrl();
fixture `Test Suite`
.page(baseUrl);
就是这样。然后,当我需要在 dev 上运行测试时,我执行:
$ TESTCAFE_ENV=dev testcafe
分期:
$ TESTCAFE_ENV=staging testcafe
和生产:
$ TESTCAFE_ENV=prod testcafe
推荐阅读
- jmeter - 如果 Taurus GUI 与变量一起使用,它不会反映解析参数
- javascript - 在 Typescript 中,如何使用字符串类型联合来约束另一个类型或接口的键
- google-bigquery - 返回 bigQuery 行中每种类型的列
- java - Selenium WebDriver findElement(By.xpath()) 获取此元素的值
- swift - 为什么我的特殊 Codable 协议与 Swift 的 Codable with Array 的工作方式不同?
- python - 如何计算 .csv 文件中的空单元格?如果行['PredictionString']== " "
- batch-file - 批处理文件根据部分名称将文件移动到文件夹
- node.js - 如何将 HTTP 流转换为 HTTPS?
- google-apps-script - 从现有的 Google 表单回复中做出新的回复
- c++ - 更改所有 C/C++ 项目的 eclipse 的默认启动配置