2016-10-05 4 views
3

私はJUNITと共にJavaとSeleniumを使用してテストケースを作成しています。私はアプリケーションのさまざまな部分を徐々にテストしてきました。テスト機能の優先順位を設定してアプリケーションを段階的にテストしますか?

IE:ページナビゲーション、次にページをナビゲートし、特定のボタンをクリックします。その場合

、私は2つのテスト機能があります。それは最初buttonClickonPageを実行する可能性があるので、これらは必ずしも、同じ順序で実行されません

@Test 
public void pageNavigation(){...} 

@Test 
public void buttonClickOnPage(){ 
    pageNavigation(); 

    WebElement ele = ....; 
} 

を。私はアプリケーションの幅広い最初のテストのような何かをするために、すべての単純なケースをテストし、その後、より広範なケースを移動するために優先キューを設定することを望んでいました。

これらのケースは独立して機能することは分かりますが、1つのケースでは別のケースを使用する必要があり、それをビルドする必要があります。

Java SeleniumとJunitのスコープでこれを行う方法はありますか?私はhiearchically拡張アノテーションを使用して、私のテストクラスを優先してきた

おかげ

+0

GebとSpock(基本的にSeleniumとJUnitの上にあるDSL)を使用することをお勧めします。このDSLは、この機能のほとんどをロールアップし、あなたが求めている方法で簡単に作成できます。 – chrylis

+0

https://github.com/junit-team/junit4/wiki/Test-execution-orderを見てください。クラスレベルで@FixMethodOrder(MethodSorters.NAME_ASCENDING)を使用してください。 – Grasshopper

答えて

0

public interface High extends Medium 
public interface Medium extends Low 
public interface Low 

テストクラスは、あなたが/ MavenのかのGradleで簡単にカテゴリを除外含んこの

@Category(testclient.priority.Medium.class) 
public class MyMediumTest { 
... 
} 

のような別のJunit annotationorg.junit.experimental.categories.Categoryを使用して注釈を付けています。ここにはexampleがあります。それはおそらくメソッドレベルでも機能します。

+0

それは、それがそれを行うための非常に素晴らしい簡単な方法であるので、それが動作するかどうかを確認するために、このショットを与えます。私は '@Test(Priority:1)'のようなことをしたいと思っていましたが、ちょうど良いことです。私はバケツを増やしたいと思っていましたが、あなたのインターファクト構造を拡張して3つ以上のオブジェクトを持つことができました。 – Fallenreaper

関連する問題