5

このようなロードされたスプリングコンテキストでテストスイートを実行することは可能ですか?

@RunWith(Suite.class)
@SuiteClasses({ Test1.class, Test2.class })
@ContextConfiguration(locations = { "classpath:context.xml" }) <------
public class SuiteTest {
}

上記のコードは明らかに機能しませんが、そのような動作を実現する方法はありますか?

これは現在、私のテストスイートでSpringコンテキストがどのように使用されているかです:

@BeforeClass
public static void setUp() {
    final ConfigurableApplicationContext context =
            loadContext(new String[] { "context.xml" });
    jdbcTemplate = (JdbcTemplate) context.getBean("jdbcTemplate");
    // initialization of other beans...
}
4

1 に答える 1

10

私はあなたのコードを試してみました.Springコンテキストがロードされた状態でテストスイートが実行されています. 何が問題なのか、詳しく説明していただけますか?

コードは次のとおりです。

@RunWith(Suite.class)
@SuiteClasses({ Test1.class, Test2.class })
public class SuiteTest {
}

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:context.xml" })
@Transactional
public class Test1 {}

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:context.xml" })
@Transactional
public class Test2 {}

Suite クラスに独自のアプリケーション コンテキストを持たせたい場合は、これを試してください。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:context.xml" })
@Transactional
public class SuiteTest {

    @Test public void run() {
        JUnitCore.runClasses(Test1.class, Test2.class);
    }

}
于 2013-07-05T08:25:13.180 に答える