Javascript 避免firefox量角器中多个测试文件中的一个测试
我的tests文件夹中有多个测试,其中所有测试的命名约定以spec.js结尾。我正在使用*/spec.js选项从配置文件运行所有测试 我想跳过在FF中运行一个测试,因为该浏览器不支持该测试。这就是我试图做的,但它并没有跳过测试。请告知Javascript 避免firefox量角器中多个测试文件中的一个测试,javascript,angularjs,selenium,selenium-webdriver,protractor,Javascript,Angularjs,Selenium,Selenium Webdriver,Protractor,我的tests文件夹中有多个测试,其中所有测试的命名约定以spec.js结尾。我正在使用*/spec.js选项从配置文件运行所有测试 我想跳过在FF中运行一个测试,因为该浏览器不支持该测试。这就是我试图做的,但它并没有跳过测试。请告知 multiCapabilities: [{ 'browserName': 'chrome', 'chromeOptions' : { args: ['--window-size=900,900'] // } }, }, { 'br
multiCapabilities: [{
'browserName': 'chrome',
'chromeOptions' : {
args: ['--window-size=900,900']
// }
},
},
{
'browserName': 'firefox',
'chromeOptions' : {
args: ['--window-size=900,900']
// }
},
}],
specs: [
'../tests/*.spec.js'
],
我的onPrepare函数中包含以下内容:
browser.getCapabilities().then(function (cap) {
browser.browserName = cap.caps_.browserName;
});
在我希望跳过在FF中运行此测试的一个测试文件中,我正在这样做
if(browser.browserName=='firefox') {
console.log("firefox cannot run *** tests")
} else {
blah... rest of the tests which I want to execute for Chrome and IE I have put it in this block}
但我想在FF中跳过的测试仍然在运行
请告知。一个简单的方法是使用
exclude
标记更新您的firefoxmulticapabilities
以排除特定的测试规范。这将防止使用if
条件和额外的代码行。这是怎么做的-
multiCapabilities: [{
'browserName': 'chrome',
'chromeOptions' : {
args: ['--window-size=900,900']
// }
},
},
{
'browserName': 'firefox',
'chromeOptions' : {
args: ['--window-size=900,900']
// }
},
}],
specs: [
'../tests/*.spec.js'
],
multiCapabilities: [{
browserName: 'chrome',
chromeOptions : {
args: ['--window-size=900,900']
},
},
{
browserName: 'firefox',
// Spec files to be excluded on this capability only.
exclude: ['spec/doNotRunInChromeSpec.js'], //YOUR SPEC NAME THAT YOU WANT TO EXCLUDE/SKIP
}],
希望有帮助。只要
浏览器。getCapabilities()
是异步的,并且基于中的代码。然后()
可能会比其他代码执行得晚。我猜如果将条件置于描述块中,该块实际上在浏览器的值之前运行。设置了browserName
,则会得到未定义的值,条件失败。为了确保测试在所有准备工作完成后运行,您应该从onPrepare
返回一个承诺:
onPrepare: function() {
return browser.getCapabilities().then(function (cap) {
browser.browserName = cap.caps_.browserName;
});
}
量角器将明确地等待,直到它解决,然后开始执行测试
describe('Suite', function () {
console.log(browser.browserName); // 'firefox'
it('spec', function () {
expect(true).toBe(true);
});
});
非常感谢。。不知道exclude标记您知道2.4.0是否支持exclude标记吗?我升级了量角器版本,现在我的排除标记根本不起作用。我得到警告,你的规格图案与任何文件都不匹配message@user2744620它应该会起作用。从错误的外观来看,似乎您提供的文件路径或文件名不正确。你能核实一下吗?如果仍然正确,请在github页面中使用量角器打开问题。谢谢。不用了,在chrome上它会被执行。只有在FF中,它给了我错误。我会再检查一遍这确实是个错误。我降低了版本,现在它的工作。将创建一个票证。