5

テストクラスには多くの春のテストメソッドがあります。選択的なテストのみを実行したい。だから私は同じクラスでテストスイートを作成したいと思います。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/testApplicationContext.xml"})
@TransactionConfiguration(defaultRollback=true)
public class TestersChoice  { 


@Test
@Transactional
public void testAddAccount(){        
  ///do something ....
}  


@Test
@Transactional
public void testDeleteAccount(){        
  ///do something ....
}   

@Test
@Transactional
public void testReadAccount(){        
  ///do something ....
}   

}

このClassTestersChoiceを実行すると、すべてのテストが実行されます。残りではなく、testReadAccountを実行したいだけです。選択的なテストを実行するためのスイートを作成したいと思います。(これを達成するために、上記のテストメソッドの@Testを削除することは避けたい)jUnitテストケースのようなもの。これは、TestersChoiceクラスをTestCaseに拡張し、このメソッドを挿入することで実行できたものです。

public static TestSuite suite(){
      TestSuite suite = new TestSuite();
       suite.addTest(new TestersChoice("testDeleteAccount"));
      return suite;
}

しかし、今のところ私はTestCaseを拡張していないので、TestersChoiceインスタンスをスイートに追加できません!

選択的テストを実行する方法は?

4

3 に答える 3

1

テストをグループ化することが必要な場合、問題は spring-test ではなく、テストのグループ化が不可能な JUnit にあります。TestNG への切り替えを検討してください (Spring OOTB でもサポートされています)。

TestNG は JUnit 上に構築されていますが、より強力です:比較を参照してください。

グループ化は簡単です。

よろしく、
スタイン

于 2011-03-10T08:17:43.243 に答える
1

Spring を使用することができIfProfileValue(常に を使用している場合@RunWith(SpringJUnit4ClassRunner.class))、テストは を使用して特定のシステム プロパティを指定した場合にのみ実行されます-D<propertyname>

于 2011-04-05T12:52:37.703 に答える
0

@Ignore実行したくないメソッドごとにを使用します。あなたの例を取る:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"/testApplicationContext.xml"}) @TransactionConfiguration(defaultRollback=true) public class TestersChoice  { 


@Test  @Transactional @Ignore public void testAddAccount(){           ///do something .... }  


@Test @Transactional @Ignore public void testDeleteAccount(){          ///do something .... }   

@Test @Transactional public void testReadAccount(){           ///do something .... }

としてマークされたすべてのメソッドは@Ignore実行されません

于 2013-07-02T10:36:19.140 に答える