2016-07-18 5 views
0

私は、使用するフレームワークにBeforeClassメソッドがあり、すべてのスイートクラスがこの基本クラスから拡張され、示されているようにBeforeClassメソッドをオーバーライドしています。BeforeClassメソッドがテスト実行全体を停止しています

public BaseClass{ 
    @BeforeClass 
    public void preConditions{ 
     //primary actions like opening browser and setting preferences 
    } 
} 

public TestSuiteClass extends BaseClass{ 
    @BeforeClass 
    @Override 
    public void preConditions(){ 
     super.preCnditions(); 
     //specific preconditions required by test suite 
    } 
} 

私が持っています問題は、オーバーライドされたメソッドが何らかの理由で失敗している場合は、すべてのテストスーツ/例がスキップされますし、全体のテストの実行が停止し、です。 これをやめる方法を教えてください。

+0

を見つけることができますか? – Shettyh

+0

あなたの質問は十分ではありません。テストクラスとメソッドを追加できますか?目標は、どのテスト方法が実行されるべきか、想定されない方法を示すことです。 – juherr

答えて

0

あなたはこれを回避する方法を見つけることができますが、本当にしたいのかどうかを検討する必要があります。 @BeforeClass注釈付きの方法のアイデアは、テストの関連データを設定することです(あなたはそれをpreConditionsと呼んでいました)。失敗した場合は、テストは合格しません。それを行うには

一つの方法は、@BeforeClass注釈を削除して、テストがcustomPreConditions()が成功しない場合であっても継続されますテスト自体

public TestSuiteClass etends BaseClass { 

    public void customPreConditions() { 
     super.preCnditions(); 
    } 

    @Test 
    publuc void someTest() { 
     customPreConditions(); 
     // do the test 
    } 
} 

からメソッドを呼び出すことです。

1

@Before ...注釈付き手続きで何かが失敗した場合、問題はテストケースではなくその前のプロセスであるため、テストは失敗する代わりにスキップされます。あなたの車は壊れた橋の上を川を渡ることができないように見えますが、それはあなたの車の欠陥ではありません。

あなたが実際にいくつかはそれについてハッキングんしたい場合は、使用しているTestNGのバージョンのideas here!

関連する問題