2013-07-05 38 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

相关问题