Я хотел бы знать, существуют ли некоторые платформы поблочного тестирования, которые способны к записи многопоточных тестов легко?
Я вообразил бы что-то как: вызовите специальный метод тестирования потоками n одновременно в течение m времен. После всех тестовых законченных потоков был бы вызван метод утверждения, где некоторые ограничения должны быть проверены.
Мой текущий подход должен создать объекты Потока в junit методе тестирования, цикл вручную реальные тестовые сценарии в каждом выполнении () метод, ожидать всех потоков и затем проверить утверждения. Но с помощью этого, у меня есть большой шаблонный блок кода для каждого теста.
Каковы Ваши события?
Есть ConTest , а также GroboUtils .
Я использовал GroboUtils много лет назад, и он сработал. ConTest новее, и сейчас я предпочитаю использовать его как отправную точку, поскольку вместо того, чтобы полагаться только на метод проб и ошибок, инструментарий вынуждает выполнять определенные чередования потоков, обеспечивая детерминированный тест. Напротив, GroboUtils MultiThreadedTestRunner просто запускает тесты и надеется, что планировщик произведет чередование, которое приведет к появлению ошибки потока.
РЕДАКТИРОВАТЬ: См. Также ConcuTest , который также выполняет принудительное чередование и является бесплатным.
Существует также MultithreadedTC Билла Пью из компании FindBugs.
Простое использование библиотек параллелизма упростило бы ваш код. Вы можете превратить свой код котельной плиты в один метод.
Что-то вроде
public static void runAll(int times, Runnable... tests) {
}