テストをリファクタリングした後、奇妙な問題に直面しました。実行時間を大幅に短縮するために、あらゆる場所で 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
}
}
仕様 1:
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
それは問題ありませんが、上記の構成がある場合、次のような例外があります。
[ランチャー] WebDriver F のインスタンスを 1 つ実行しています。
失敗:
1) Google Spec 検索入出力が提示されていることを確認する メッセージ: false が true であると予想されます。Stacktrace: エラー: [object Object] で期待に失敗しました。(/Users/sergeyteplyakov/WebstormProjects/e2eMPP20/googleSpec.js:13:54)
6.339 秒で終了 2 つのテスト、2 つのアサーション、1 つの失敗
[ランチャー] まだ実行中の WebDriver の 0 インスタンス [ランチャー] chrome
1 件のテストに失敗しました [ランチャー] 全体: 1 件の仕様に失敗しました [ランチャー] プロセスはエラー コード 1 で終了しました
プロセスは終了コード 1 で終了しました
私の実際のテストでは、私の仕様が私が提供したものと似ている場合、同じ問題があります。何らかの理由で実際に何が起こっているかを見ると、最初の仕様が終了する前に、2番目の仕様の .get(url) メソッドの実行が開始されました。コアで重要な何かが欠けていると思います。誰か教えてください)