Java 将ActiveTestSuite切换到带注释的JUnit4

Java 将ActiveTestSuite切换到带注释的JUnit4,java,junit,junit4,Java,Junit,Junit4,我已经创建了一些测试用例,并使用ActiveTestSuite并行运行这些方法,以检查一些潜在的线程问题。接下来,我想用注释将类交换到JUnit4,因为我需要利用@BeforeClass和@AfterClass注释。我的问题在于创建测试套件。在此之前,我做了以下工作 public static Test suite() { TestSuite suite = new ActiveTestSuite( MultithreadedTests.class.ge

我已经创建了一些测试用例,并使用ActiveTestSuite并行运行这些方法,以检查一些潜在的线程问题。接下来,我想用注释将类交换到JUnit4,因为我需要利用@BeforeClass和@AfterClass注释。我的问题在于创建测试套件。在此之前,我做了以下工作

public static Test suite() {
       TestSuite suite = new ActiveTestSuite(
              MultithreadedTests.class.getName());
       // the parm is the method name!!!
       suite.addTest(new MultithreadedTests("testTransferToHostStockCountAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostRTVAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostTRFAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostRCVAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostCartonAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostInvAdjustmentAndFinFile"));
       suite.addTest(new MultithreadedTests("testTransferToHostStoreOrderAndFinFile"));
       return suite;
}
为了使类前/类后部分正常工作,我的测试类不再扩展TestCase,否则这些方法不会被触发。我可以让我的类进行如下编译:

package com.jda.portfolio.hostexport.server.exporthandler;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({ com.jda.portfolio.hostexport.server.exporthandler.TestThreadedExportHandler.class  })
public class AllTests {} 
但是测试是单线程的,这不是我想要的。我需要能够在一个单独的线程中运行每个testcase方法,但我很难理解如何使用JUnit4注释来创建套件,使其成为“ActiveTestSuite”


我遗漏了什么?

ActiveTestSuite似乎仍然可以作为JUnit4的一部分在包“junit.extensions”中使用


还有一些第三方扩展也做类似的事情。我在我的一个项目中成功地使用了的变体。另外,关于的讨论听起来像是一个可能的解决方案。

它仍然可用,但它遗漏了一些示例,例如如果我们不想添加第三方库/类,如何将ActiveTestSuite与带注释的测试一起使用。