【发布时间】:2014-07-10 00:17:15
【问题描述】:
我有一个 jUnit 测试用例来测试帮助程序、实用程序、服务等的 Spring 托管 bean。所以我已经使用 SpringJUnit4ClassRunner 和 contextConfiguration 设置了单元测试类。例如-
@ContextConfiguration({ "classpath:context-file.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class UnitTests {
@Test
public void test1() {
//...
}
@Test
public void test2() {
//...
}
@Test
public void test3() {
//...
}
@Test
public void test4() {
//...
}
}
我想在运行时在某些条件下运行这四个(或更多)单元测试,例如 如果互联网可用,则运行测试 UnitTests.test1(),如果连接数据库,则运行 UnitTests.test2(),如果存在图像文件目录,则运行测试 UnitTests.test3(),如果远程服务器正确响应,则运行测试UnitTests.test4().
虽然我已经通过jUnit org.junit.Assume 但它不适合,它可以使测试框架运行所有测试或跳过所有测试。 @Ignore 也不适用于这些场景。还通过了 junit-ext (https://code.google.com/p/junit-ext/),但它的依赖关系在 maven-central 存储库 (junit-ext-maven-dependency) 上不可用。请任何人帮我解决一下这里的代码问题。
【问题讨论】:
-
您必须在某处写入验证码。 Assume.assumeTrue(SomeTestFixture.somePrecondition()) 有什么问题?它实际上会在该点停止执行并将测试标记为已跳过。
标签: maven unit-testing junit spring-test