我想知道是否有一种方法可以传递参数来让你的fixture或者所有的测试都知道它们正在运行哪个浏览器。
在我的情况下,我会使用这个参数来简单地为我的测试分配相应的值到一个变量中。
例如,
switch(browser) {
case 'chrome':
chrome = 'chrome.com';
break;
case 'firefox':
link = 'firefox.com';
break;
case 'safari':
link = 'safari.com';
break;
default:
break;
}
目前,我通过添加全局节点变量实现了类似的功能,看起来像这样:
"chrome": "BROWSER=1 node runner.js"
然而,这让我为每个浏览器创建一个单独的运行程序(safari-runner, chrome-runner等),而我希望所有内容都能够放在一起。
因此,最终我需要让这项工作实现:
const createTestCafe = require('testcafe');
let testcafe = null;
createTestCafe('localhost', 1337, 1338)
.then(tc => {
testcafe = tc;
const runner = testcafe.createRunner();
return runner
.src('test.js')
.browsers(['all browsers'])
.run({
passBrowserId: true // I guess it would look something like this
});
})
.then(failedCount => {
console.log('Tests failed: ' + failedCount);
testcafe.close();
})
.catch(error => {
console.log(error);
testcafe.close();
});