2013-07-05 58 views
3

內是否有可能運行測試套件與彈簧加載背景下,這樣的事情測試套件Spring上下文

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

上面顯然不會工作的代碼,但是有什麼辦法來完成這樣的行爲?

這是春天的背景下,目前如何在我的測試套件使用:

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

回答

6

我已經試過你的代碼,測試套件與彈簧加載的上下文中運行。你能否更詳細地解釋問題是什麼?

這裏是代碼:

@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 {} 

如果你想套件類有它自己的應用程序上下文,試試這個:

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

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

} 
+0

好,我想套件類有它自己的應用程序上下文 – lolotron

+0

如果它使用'JUnitCore.runClasses'完成,那麼它就是普通的JUnit測試而不是測試套件 – lolotron

相關問題