我希望能够输入一个自定义命令,例如下面的命令,启动几套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
变量/值可以传递给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或Config MD文件中找不到任何引用。
任何指针都会非常感激。谢谢。
答案 0 :(得分:1)
从 Gemini配置文档中,我找到了我需要的答案,或多或少:
gemini_root_url=http://example.com gemini test
以前的开发人员通过gulp和javascript尝试/创建了相同的功能,但这似乎没有必要(更多?),至少在版本2.1.1。因此,我已从上面的示例中删除了所有与geminiTestUrlSwitch
相关的代码,以获取最终版本。
检查https://github.com/gemini-testing/gemini/blob/master/doc/config.md底部的覆盖设置部分