2012-03-01 8 views
0

私は3つのテストケース、すなわち1 2 3を持っています。mavenコマンドの実行中に、どのように優先順位を2 1 3にしますか?Mavenでテストケースを事前実行する方法は?

+2

は、なぜあなたはそれをしたいのでしょうか? –

+0

私は3つのテストケースを作成、削除、共有しています。すべてが同じ要素を操作しています。作成する前にdeleteを実行すると、削除するものはありません。だから私はこの方法でそれを注文する必要があります。 は 、共有 を作成し、最後に削除します。 –

+0

それは私が知っている、愚かだが、あなたがあなたの順序を変更する場合は、あなたのテストクラスの例をテストあなたは:) – faramka

答えて

0

私はあなたを想定テストを実行する前に事前取得が必要なため、実行したいと考えています。実際のテストケースの前に@Before Annotationで行うか、テストメソッドから他のテストを呼び出すことができます。

セイ、testClient()テストでは、新しいクライアントがシステムに追加することができることをテストして確認します。次に、あなたがこれを行うことができます:あなたは前提条件がfullfilledされていることを保証し、テストケースについてあまり心配する必要はいけないしているような場合には

@Test 
public void testWithdrawal(){ 
testClient(); // i need client existing before the test can be run 
// ... do something else 
} 

EDIT

を注文私はあなたのニーズを理解すると思います私は全く同じ状況にいるからです。どのように私はそれを解決:

createのために私は私のデータを作成し、必要なデータを返すことができる特別なクラスを持っています。作成を解決する

@Test 
public void testShare(){ 
CreateTests create = new CreateTests; //This will just initialize the object 
create.testCreate(); // this method can contain steps needed to create 
String justCreatedEntity = create.getEntity(); // just example how you can use the just created entity in further tests 

} 

そして、私のクラスだけでアウトラインこの

public class CreateTests{ 
    private static String entity; //static because i dont want it to be flushed when test ends 

public void testCreate() throws Exception{ 

    WebDriverBackedSelenium selenium = new WebDriverBackedSelenium(driver, "baseURL"); 
    selenium.... // All the selenium stuff 
    setEntity(selenium.getText("id=mainForm.createdentity")); 
} 

public void setEntity(String ent){ 
    this.entity = ent; 
} 

public String getEntity(){ 
    return entity; 
} 

そのようなものである - しかし、基本的に、私は、スタンドアロンオブジェクトとしてこれらの「決定的な」エンティティを持っている:だから、私のような何かが持っていますテストクラスによって呼び出されます。テストの中で、私はすべてのゲッターを検証します。同様:

Assert.assertNotNull(create.getAuctionID(),"New Entity is NULL!"); 
+0

いいえPavel、JUnit setUp()とteardown()は前提条件です。私の問題は競争状態です。私はそれをより明確にしようとする、3つの個別の単体テストがあります。同じデータセットでDeleteとShareを作成します。つまり、Createを使用して作成するものは共有と削除を使用して共有および削除されます。だから私は作成 - >削除 - >共有を呼び出す場合、共有することは何もありません。だから私は作成 - >共有 - >削除などの順序を設定する必要があります。私は今、それがはっきりと思う。ご協力いただきありがとうございます。 –

+0

編集の回答、助けて欲しい –

+0

感謝パベル、私の質問は実際にはコマンドレベルでした。あなたが** mvn -Dtest =作成、共有、削除テスト**とタイプするときのように。この順序を取る必要があります。 –

0

あなたは、単一のテスト、または複数のテストを指定するには、オプションでMVNテストを実行することができます。それらが実行される順序は、コマンド行で指定された順序です。

リファレンスはここにある:Javaはテストの良いユニットテストの練習がお互いに依存しないため、テストで実行する必要がないことを示唆していることをhttp://maven.apache.org/plugins/maven-surefire-plugin/examples/single-test.html

注: http://java.sun.com/developer/Books/javaprogramming/ant/ant_chap04.pdf

+0

私は-Dtestコマンドを使用しましたが、動作しませんでした。私は間違ったコマンドを与えているかもしれません。ありがとう。 –

関連する問題