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底部的覆盖设置部分