双子座回归测试 - 动态rootUrl

时间:2016-03-11 23:23:21

标签: unit-testing regression-testing

我希望能够输入一个自定义命令,例如下面的命令,启动几套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
  ]);
}

我在文档(CommandsTestsConfig MD文件中找不到任何引用。

任何指针都会非常感激。谢谢。

1 个答案:

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