我正在使用Spring 3.0.4和JUnit 4.5。我的测试类目前使用Spring的注释测试支持,语法如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration (locations = { "classpath:configTest.xml" })
@TransactionConfiguration (transactionManager = "txManager", defaultRollback = true)
@Transactional
public class MyAppTest extends TestCase
{
@Autowired
@Qualifier("myAppDAO")
private IAppDao appDAO;
...
}
我真的不需要行 extends TestCase 来运行此测试。单独运行此测试类时不需要它。我必须添加 extends TestCase ,以便我可以在TestSuite类中添加它:
public static Test suite() {
TestSuite suite = new TestSuite("Test for app.dao");
//$JUnit-BEGIN$
suite.addTestSuite(MyAppTest.class);
...
如果我省略 extends TestCase ,我的测试套件将无法运行。 Eclipse会将 suite.addTestSuite(MyAppTest.class)标记为错误。
如何将Spring 3+测试类添加到测试套件中?我相信有更好的方法。我是GOOGLED并阅读文档。如果你不相信我,我愿意把你所有的书签作为证据发给你。但无论如何,我更愿意提出建设性的答案。非常感谢。
答案 0 :(得分:6)
junit.framework.TestCase
您可以通过这种方式将JUnit4测试作为JUnit3套件的一部分包含在内:
public static Test suite() {
return new JUnit4TestAdapter(MyAppTest.class);
}
通常您会将此方法添加到MyAppTest
类。然后,您可以将此测试添加到更大的套件中:
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("AllTests");
suite.addTest(MyAppTest.suite());
...
return suite;
}
}
您可以通过创建使用Suite注释的类来创建JUnit4样式的套件
@RunWith(Suite.class)
@SuiteClasses( { AccountTest.class, MyAppTest.class })
public class SpringTests {}
请注意,AccountTest
可以是JUnit4样式的测试或JUnit3样式的测试。