5

是否可以使用加载的弹簧上下文运行测试套件,像这样

@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...
}
4

1 回答 1

10

我已经尝试过您的代码,测试套件正在加载弹簧上下文运行。你能更详细地解释问题是什么吗?

这是代码:

@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 回答