2017-12-11 5 views
0

私はジャスミンに新しい試みをしており、ジャスミンで共有手順を実装しようとしています。 2つのシナリオの間でいくつかのステップを共有しようとしています。だから、ブロック内で共有された記述ブロックを実行しようとしているだけで、実行しません。以下は単なるサンプルコードです。分度器ジャスミンは、そのブロック内で動作しないと説明しています

describe('Main Method 1',(){ 
    it('Function 1',(){ 
     console.log('Function 1'); 
     describe('Function 1',(){ 
     it('Function 1.1',(){ 
     console.log('Function 1.1'); 
     }) 
     it('Function 1.2',(){ 
     console.log('Function 1.2'); 
     }) 
     }); 
    }); 
    it('Function 2',(){ 
     console.log('Function 2'); 
     describe('Function 2',(){ 
     it('Function 2.1',(){ 
     console.log('Function 2.1'); 
     }) 
     it('Function 2.2',(){ 
     console.log('Function 2.2'); 
     }) 
     }); 
    }); 
}); 

この関数1と関数2は異なるシナリオです。私はMain Method1で特定のシナリオを共有したいと思っていました。

機能1 &機能2が印刷され、機能1.1機能1.2、機能2.1および機能2.2は印刷されません。

誰かがこれについてアイデアを共有することができます。

実際の実装は、あなたが1 describeに全て同様の試験をラップすることができますし、あなたが彼らの前に何かを呼び出したい場合はafterAllその後、後の場合は、beforeAllを使用し、より

describe('Main Method',(){ 
    it('F1',() { 
     Function1(); 
    }); 
    it('F2',() { 
     Function2(); 
    }); 
}); 

Function1(){ 
    describe('Function 1',(){ 
    it('Function 1.1',(){ 
    console.log('Function 1.1'); 
    }) 
    it('Function 1.2',(){ 
    console.log('Function 1.2'); 
    }) 
    }); 
} 
Function2(){ 
    describe('Function 2',(){ 
    it('Function 2.1',(){ 
    console.log('Function 2.1'); 
    }) 
    it('Function 2.2',(){ 
    console.log('Function 2.2'); 
    }) 
    }); 
} 

答えて

2

のようなものです。また、beforeEach()機能でテストの間に何かをすることもできます。

各ブロックは、1つの操作(「ブラウザを開く」、「ログインボタンをクリック」など)を実行する責任があるので、describeブロックをitの内側に置くことはお勧めできません。

describe('Main Method 1',() { 

    describe('Function 1',() { 

    beforeAll(function() { 
     console.log('Start of Function 1'); 
    }); 

    beforeEach(function() { 
     console.log('Start of next test'); 
    }); 

    afterAll(function() { 
     console.log('End of Function 1'); 
    }); 

    it('Function 1.1',(){ 
     OpenPage(); 
    }); 

    it('Function 1.2',(){ 
     console.log('Function 1.2'); 
    }); 
    }); 

    describe('Function 2',() { 

    beforeAll(function() { 
     console.log('Start of Function 2'); 
    }); 

    it('Function 2.1',(){ 
     OpenPage(); 
    }); 

    it('Function 2.2',(){ 
     console.log('Function 2.2'); 
    }); 
    }); 
}); 

function OpenPage() { 
    // open page 
    browser.get('http://google.com/'); 
    // More code you don't want to repeat. 
} 
+0

記述するFunction1とFunction2は別々のテストケースであり、記述方法Mainメソッドでそのテストケースを再利用したいだけです。 (コードの重複を避けるため)。 –

+1

呼び出す関数を作成することができます。それが彼らのためのものです。 – FCin

+0

私は関数呼び出しで自分の質問を更新しました...関数内でitブロックを実行しません。 –

関連する問題