2012-01-26 5 views
2

Я создал несколько тестовых таблиц и использую ActiveTestSuite для параллельного запуска методов, чтобы проверить некоторые потенциальные проблемы с потоками. Затем я хотел обменять класс на JUnit4 с помощью аннотации, потому что мне нужно использовать аннотации @BeforeClass и @AfterClass. Моя проблема связана с созданием набора тестов. Ранее я сделал следующееПереключение ActiveTestSuite на JUnit4 с аннотациями

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 {} 

Но испытания получить однопоточными, который не то, что я хочу. Мне нужно иметь возможность запускать каждый из тестовых методов в отдельном потоке, но мне трудно понять, как использовать аннотации JUnit4 для создания набора, так что это «ActiveTestSuite».

Что мне не хватает?

ответ

1

ActiveTestSuite по-прежнему доступен как часть junit 4 в пакете «junit.extensions».

Есть также некоторые сторонние расширения, которые делают подобные вещи. Я успешно использовал вариант these 3 classes в одном из моих проектов. Также обсуждение Concurrent JUnit Tests With RunnerScheduler звучит как возможное решение.

+1

Он по-прежнему доступен, но в нем отсутствует пример использования ActiveTestSuite с аннотированными тестами, если мы не хотим добавлять сторонние библиотеки/классы. –

Смежные вопросы