根据我需要 运行 中的套件的环境更改 .page URL
Change .page URL based on environment I need to run the suite in
我们一直在使用暂存环境构建自动化套件,但即将上线并希望准备好告诉项目运行(暂存、生产)的位置。
环境中站点之间的唯一区别是 URL。我的问题是,从头到尾,如何通过 CLI 选项设置 .page URL?
现在,我已经创建了一个环境配置文件来保存我们的暂存和生产 URLS,然后我将数据调用到我的测试文件中。现在这没问题,但我需要创建一个脚本,其中包含一个选项,可以在 运行 时间设置环境,而无需在启动之前进行手动查找和替换。
我在网上四处张望,发现我认为是代码片段和一般说明,但我本质上不是开发人员,所以我很生气。如果我能为此获得 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);
就是这样。然后当我需要在开发上进行 运行 测试时,我执行:
$ TESTCAFE_ENV=dev testcafe
分期:
$ TESTCAFE_ENV=staging testcafe
并用于生产:
$ TESTCAFE_ENV=prod testcafe
我们一直在使用暂存环境构建自动化套件,但即将上线并希望准备好告诉项目运行(暂存、生产)的位置。
环境中站点之间的唯一区别是 URL。我的问题是,从头到尾,如何通过 CLI 选项设置 .page URL?
现在,我已经创建了一个环境配置文件来保存我们的暂存和生产 URLS,然后我将数据调用到我的测试文件中。现在这没问题,但我需要创建一个脚本,其中包含一个选项,可以在 运行 时间设置环境,而无需在启动之前进行手动查找和替换。
我在网上四处张望,发现我认为是代码片段和一般说明,但我本质上不是开发人员,所以我很生气。如果我能为此获得 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);
就是这样。然后当我需要在开发上进行 运行 测试时,我执行:
$ TESTCAFE_ENV=dev testcafe
分期:
$ TESTCAFE_ENV=staging testcafe
并用于生产:
$ TESTCAFE_ENV=prod testcafe