2

その日まで、私はいつも孤立した小さなテストを行っていました。しかし、今はそれらを 1 つのシナリオで実行したいと考えています。そして、私は奇妙なエラーがあります。一部のテストは連携できません。例えば。最初の1つ:

beforeEach(function(){
    browser.get('ng-components/examples/ps-grid-column-filter-range.html');
});

it('балун содержит текст', function () {
    filter_field.click();
    browser.actions().click(filter_field).perform();

browser.wait(function () {
  return balloon_info.isPresent();
     },5000).then(function () {
       expect(balloon_text.getText()).toContain(balloon_contain_text);
       expect(balloon_text.isDisplayed()).toBe(true);
  }).thenCatch(function () {
      expect(true).toBe(false);
 });
console.log("ps-grid-column-filter-range_spec_1.1.с");
});

二つ目:

  beforeEach(function(){
    browser.get('ng-components/examples/ps-grid-column-filter-range.html');
 });

it('балун демонстрируется', function () {
    filter_field.click();
    browser.actions().click(filter_field).perform();

    browser.wait(function () {
      return balloon_info.isPresent();
      },5000).then(function () {
        expect(balloon_info.isDisplayed()).toBe(true);
    }
    ,function (error) {
       expect(false).toBe(true);
   });

console.log("ps-grid-column-filter-range_spec_1.1.a");
  });

私のテストが分離されたとき、それらは正常に動作しました。しかし、グループでは - 彼らは失敗します。私の間違いは何ですか?非同期の問題ですか?

また、興味深いのは、一部の壊れたテストにはメソッド wait() が含まれていないことです。

4

1 に答える 1

1

browser.wait は非ブロッキングであるため、最初のテストがまだ進行中に 2 番目のテストが実行される可能性があります。そして、それは同じ機能であるため、おそらくお互いの結果に影響を与えます。両方を同じテストに入れて、チェーンしてみてください

.then()

この例に従って、分度器のブロックを待機させることができます

ブロッキング待ち

于 2015-08-06T12:29:33.277 に答える