0

我有一组测试必须仅从 TestSuite 运行,而不能直接运行,因为它们需要在套件设置级别实例化的资源

所以我的测试套件是

@RunWith(Suite.class)
@Suite.SuiteClasses({IT_LiquidBaseTest.class})
@ContextConfiguration(locations = {"classpath:spring-config-test.xml"})
public class DBTestSuite {
    private static MysqldResource mysqldResource;
    ....

我的测试是这样的

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-config-test.xml"})
public class IT_LiquidBaseTest {
    @Autowired
    private DataSource dataSource;

因此,当我启动套件时一切都很好,但是当我调用 maven 时,它尝试直接运行 IT_LiquidBaseTest 并失败。我仍然需要依赖注入来获取数据源

您是否知道如何防止 maven surefire 插件进行此操作但启用测试套件的运行

谢谢

4

1 回答 1

1

您可以org.junit.Assume用来测试套件的状况。

@Before
public void beforeMethod() {
     org.junit.Assume.assumeTrue(DBTestSuite.someCondition());
     // rest of setup.
}

如果假设失败,则不运行测试。

请参阅问题的最高投票答案:有条件地忽略 JUnit 4 中的测试

于 2013-04-23T16:14:02.503 回答