测试重构后,我遇到了奇怪的问题。我弃用了 beforeEach/afterEach 块以显着减少执行时间,现在我在一个接一个地运行简单的规范时遇到了问题。我已经创建了简单的配置和规格。
配置:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: [
'googleSpec.js',
'forgotPasswordPageTestSuite.js'
],
capabilities:
{
browserName: 'chrome'
//shardTestFiles: true,
//maxInstances: 2
},
jasmineNodeOpts: {
defaultTimeoutInterval: 360000
}
}
规格一:
describe("Google Spec", function()
{
browser.ignoreSynchronization = true;
browser.get('http://google.com');
browser.wait(function () {
return element(by.name('q')).isDisplayed();
}, 15000);
it('Verify search inout is presented', function()
{
expect(browser.isElementPresent(element(by.name('q'))).toBe(true);
});
});
规格 2:
describe("Yandex spec", function()
{
browser.ignoreSynchronization = true;
browser.get('http://www.yandex.ru');
browser.wait(function () {
return element(by.id('text')).isDisplayed();
}, 15000);
});
it('Verify that search input is presented', function()
{
expect(browser.isElementPresent(by.id('text'))).toBe(true);
});
});
如果我分别执行它们而不是使用
shardTestFiles: true,
maxInstances: 2
没关系,但是当我有上述配置时,我有这样的例外:
[启动器] 运行 1 个 WebDriver F 实例。
失败:
1)谷歌规范验证搜索输入输出消息:预期假为真。Stacktrace:错误:[object Object] 的期望失败。(/Users/sergeyteplyakov/WebstormProjects/e2eMPP20/googleSpec.js:13:54)
在 6.339 秒内完成 2 个测试,2 个断言,1 个失败
[启动器] 0 个 WebDriver 实例仍在运行 [启动器] chrome
1 个失败的 1 个测试 [启动器] 总体:1 个失败的规范 [启动器] 进程退出,错误代码为 1
进程以退出代码 1 结束
在我的真实测试中,当我的规格与我提供的类似时,我遇到了同样的问题。当我查看由于某种原因真正发生的事情时,来自第二个规范的 .get(url) 方法在第一个规范完成之前开始执行。我想我错过了一些核心和重要的东西,谁能指出我)