我希望能够输入一个自定义命令,如下面的命令来启动几个双子座回归测试(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
]);
}
我在文档(命令、测试或配置 MD文件)中找不到任何关于这样做的参考。
任何指示都将不胜感激。谢谢。
发布于 2016-04-08 21:49:27
从Gemini配置文档中,我找到了我需要的答案,或多或少:
gemini_root_url=http://example.com gemini test
以前的开发人员曾尝试/通过gulp和javascript创建了相同的功能,但这似乎没有必要(更多了吗?),至少在2.1.1版本中是如此。因此,我已经从上面的示例中删除了最后版本的所有geminiTestUrlSwitch
-related代码。
检查重写设置部分在https://github.com/gemini-testing/gemini/blob/master/doc/config.md的底部
https://stackoverflow.com/questions/35951685
复制相似问题