2017-12-11 15 views
0

私はジャスミンフレームワークで簡単なテストを書いています。私は、以下のファイルが1つのフォルダに保存されています:ジャスミンの異なる.tsファイルのクラスを使用

  • maintest.ts

  • helper.ts

  • Workflow1.ts

  • Workflow2.ts

ワークフローファイルの内容は次のとおりです(例)。

import {element, by, browser, protractor} from "protractor"; 
import {Helper} from "../../helper"; 

export class Workflow1/2 
{ 
    static Foo1() { 

    let element1; 
    let element2; 

    describe('check all fields', function() { 
     it('check foobar', function() { 
       element1.isVisible(); 
     }); 
     it('check foobar2', function() { 
       element2.isVisible(); 
     }); 
    } 

    static Foo2() { 
    let element3; 
    let element4; 

    describe('check all fields', function() { 
     it('check foobar', function() { 
       element4.isVisible(); 
     }); 
     it('check foobar2', function() { 
       element3.isVisible(); 
     }); 
    } 
} 

そしてmaintest.tsです:

import {browser} from "protractor"; 
import {Helper} from "./helper"; 
import {Workflow1} from "./Workflow1"; 
import {Workflow2} from "./Workflow2"; 

describe ('Regression Tests', function() { 
    beforeAll(function() { 
     console.log('====================Start'); 
}); 

describe('Basic workflow', function() { 
    Workflow1.Foo1(); 
    Workflow1.Foo2(); 
    Workflow2.Foo2(); 
    Workflow2.Foo2(); 
}); 
}); 

が、私はそれを実行すると、何が正しく実行されなかった - 私はこのエラーを取得する:

Error: Error while waiting for Protractor to sync with the page: "window.angular is undefined. This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping. See http://git.io/v4gXM for details" 

が、私はコメントしている場合:

//Workflow1.Foo2(); 
//Workflow2.Foo2(); 
//Workflow2.Foo2(); 

Workflow1.Foo1 w完全にうまくいった。

異なるファイルから別の方法を使用することはできませんか?私はログインとログアウトの方法を持っているヘルパーと協力します...

+0

角度を待つように分度器を無効にしてみてください。あなたのエラーは、Angularとの同期を待っている間に、分度器のタイムアウトが原因です。 – demouser123

+0

どこ?私は 'browser.ignoreSynchronization = true;'をログインメソッドのヘルパーで追加しました。また、maintest.tsのどこでも(つまり、beforeAllやBasic Workflowで) – Michal

+1

あなたが使っている分度器のバージョンによって、 'browser.ignoreSynchronization'は廃止されました。新しいコマンドは 'browser.waitForAngularEnabled(false)' – tehbeardedone

答えて

0

私はこれを持っていると思います。私のコードは別のdescribeでかなり長くなっていましたが、2に最小化すると作業が始まりました。

編集:以下のコメントで述べたように、Workflow1とWorkflow2ファイルの各メソッドは少なくともdescribe少なくとも1つit内部 - describeなしitスローエラー

+1

私はそれが実際に解決策だとは思わない。テストが持つことができる記述の数の相関関係はありません。私は15 +の記述でテストをしており、それは完全にうまく動作します。スローされたエラーメッセージは、何度も言及されていますが、分度器のチームには、角度と同期していないものがあることが明確になっています – demouser123

+0

@ demouser123あなたは正しいですが、私は、maintest.ts(この場合はWorklow1とWorkflow2)で使用されるすべてのメソッドが、少なくとも1つの 'it'を持つ少なくとも1つの' describe'を持っていなければならないことを発見しました。 – Michal