Gemini 回归测试——动态 rootUrl
Gemini regression testing — dynamic rootUrl
我希望能够输入自定义命令(例如下面的命令)来启动几套 Gemini 回归测试 (https://github.com/gemini-testing/gemini)。
我正在使用的命令有效,但我不知道如何传递我创建的自定义 GEMINI_URL
变量以覆盖 .yml 配置文件中的 rootURL
。
此命令测试配置文件中的 rootUrl 并且工作正常:
gulp test:gemini-local
这个命令也有效,方法完全相同,但它应该测试 localhost:3000 域而不是 rootUrl:
GEMINI_URL=http://localhost:3000/testsite/ gulp test:gemini-local
理想情况下,这个 GEMINI_URL
variable/value 可以传递给 rootUrl
(用于测试)和 gridUrl
(用于屏幕截图) ).
这是我的 gulp test.js 文件中的当前工作代码,但它只测试 rootUrl
而不是我尝试的动态 URL插入进程:
/**
* Gemini update locally
*/
gulp.task('test:gemini-update-local',
geminiUpdate('local')
);
/**
* Gemini update (on SauceLab)
*/
gulp.task('test:gemini-update',
geminiUpdate('saucelabs')
);
/**
* Gemini test locally
*/
gulp.task('test:gemini-local',
geminiTest('local')
);
/**
* Gemini test (on SauceLab)
*/
gulp.task('test:gemini',
geminiTest('saucelabs')
);
function geminiUpdate(where) {
// override rootUrl
var geminiTestUrlSwitch = process.env.GEMINI_URL ? ' -r ' + process.env.GEMINI_URL : '';
var command = utils.escapeShellArg(config.paths.root + '/node_modules/.bin/gemini') + ' update' +
' -c tests/gemini/.gemini-' + where + '.yml ' +
' tests/gemini/tests/' +
geminiTestUrlSwitch;
return plugins.shell.task([
command
]);
}
function geminiTest(where) {
// override rootUrl
var geminiTestUrlSwitch = process.env.GEMINI_URL ? ' -r ' + process.env.GEMINI_URL : '';
var command = utils.escapeShellArg(config.paths.root + '/node_modules/.bin/gemini') + ' update' +
' -c tests/gemini/.gemini-' + where + '.yml ' +
' tests/gemini/tests/' +
' --reporter html --reporter flat' +
geminiTestUrlSwitch;
return plugins.shell.task([
command
]);
}
我在文档(Commands, Tests, or Config MD 文件)中找不到关于执行此操作的任何参考。
任何指点将不胜感激。谢谢。
从 Gemini 配置 文档中,我或多或少找到了我需要的答案:
gemini_root_url=http://example.com gemini test
以前的开发人员通过 gulp 和 javascript 具有 attempted/created 相同的功能,但这似乎没有必要(不再是?),至少对于 2.1 版是这样。 1.因此,我从最终版本的示例中删除了所有 geminiTestUrlSwitch
相关代码。
检查https://github.com/gemini-testing/gemini/blob/master/doc/config.md底部的覆盖设置部分
我希望能够输入自定义命令(例如下面的命令)来启动几套 Gemini 回归测试 (https://github.com/gemini-testing/gemini)。
我正在使用的命令有效,但我不知道如何传递我创建的自定义 GEMINI_URL
变量以覆盖 .yml 配置文件中的 rootURL
。
此命令测试配置文件中的 rootUrl 并且工作正常:
gulp test:gemini-local
这个命令也有效,方法完全相同,但它应该测试 localhost:3000 域而不是 rootUrl:
GEMINI_URL=http://localhost:3000/testsite/ gulp test:gemini-local
理想情况下,这个 GEMINI_URL
variable/value 可以传递给 rootUrl
(用于测试)和 gridUrl
(用于屏幕截图) ).
这是我的 gulp test.js 文件中的当前工作代码,但它只测试 rootUrl
而不是我尝试的动态 URL插入进程:
/**
* Gemini update locally
*/
gulp.task('test:gemini-update-local',
geminiUpdate('local')
);
/**
* Gemini update (on SauceLab)
*/
gulp.task('test:gemini-update',
geminiUpdate('saucelabs')
);
/**
* Gemini test locally
*/
gulp.task('test:gemini-local',
geminiTest('local')
);
/**
* Gemini test (on SauceLab)
*/
gulp.task('test:gemini',
geminiTest('saucelabs')
);
function geminiUpdate(where) {
// override rootUrl
var geminiTestUrlSwitch = process.env.GEMINI_URL ? ' -r ' + process.env.GEMINI_URL : '';
var command = utils.escapeShellArg(config.paths.root + '/node_modules/.bin/gemini') + ' update' +
' -c tests/gemini/.gemini-' + where + '.yml ' +
' tests/gemini/tests/' +
geminiTestUrlSwitch;
return plugins.shell.task([
command
]);
}
function geminiTest(where) {
// override rootUrl
var geminiTestUrlSwitch = process.env.GEMINI_URL ? ' -r ' + process.env.GEMINI_URL : '';
var command = utils.escapeShellArg(config.paths.root + '/node_modules/.bin/gemini') + ' update' +
' -c tests/gemini/.gemini-' + where + '.yml ' +
' tests/gemini/tests/' +
' --reporter html --reporter flat' +
geminiTestUrlSwitch;
return plugins.shell.task([
command
]);
}
我在文档(Commands, Tests, or Config MD 文件)中找不到关于执行此操作的任何参考。
任何指点将不胜感激。谢谢。
从 Gemini 配置 文档中,我或多或少找到了我需要的答案:
gemini_root_url=http://example.com gemini test
以前的开发人员通过 gulp 和 javascript 具有 attempted/created 相同的功能,但这似乎没有必要(不再是?),至少对于 2.1 版是这样。 1.因此,我从最终版本的示例中删除了所有 geminiTestUrlSwitch
相关代码。
检查https://github.com/gemini-testing/gemini/blob/master/doc/config.md底部的覆盖设置部分