Я создал несколько тестовых случаев и использую 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.
Чего мне не хватает?