升级到JUnit4并通过一起运行它们来保留传统的JUnit 3测试和测试套件

top*_*hef 10 java junit unit-testing backwards-compatibility junit4

到目前为止,我很惊讶没找到答案.如果我遗漏了一些基本的东西,我将非常乐意知道这一点.

有一个大型遗留代码库已升级到Java 6(从1.4开始).代码中存在大量JUnit 3测试,并将其组织到测试套件中,该套件在Eclipse中与JUnit 4默认运行程序成功运行.

现在,我正在添加纯JUnit 4测试的新测试(注释,没有TestCase等).什么是一起运行旧的JUnit 3测试套件和新的JUnit 4测试?

Ale*_*yak 12

只需在运行配置中使用"JUnit4"测试运行器.

JUnit4二进制文件具有向后兼容层,允许它在同一测试套件中同时具有JUnit3和JUnit4样式类.

对于命令行构建,只需使用JUnit4 jar而不是JUnit3.

这是专门为简化您现在正在进行的迁移而完成的.

此外,它在我的项目中工作正常.


top*_*hef 9

@RunWith(Suite.class)给了我机会,双方的JUnit 4和JUnit 3测试和测试用例结合在一起:

@RunWith(Suite.class)
@Suite.SuiteClasses({
    ExampleOfJunit3TestSuite.class, 
    ExampleOfJUnit3TestCase.class, 
    ExampleOfJUnit4TestSuite.class,
    ExampleOfJUnit4TestCase.class})   
public class BothJUnit4and3TestSuite {
}
Run Code Online (Sandbox Code Playgroud)

BothJUnit4and3TestSuite运行中列出的所有测试和测试套件@ Suite.SuiteClasses.