Как записать многопоточные модульные тесты?

Я хотел бы знать, существуют ли некоторые платформы поблочного тестирования, которые способны к записи многопоточных тестов легко?

Я вообразил бы что-то как: вызовите специальный метод тестирования потоками n одновременно в течение m времен. После всех тестовых законченных потоков был бы вызван метод утверждения, где некоторые ограничения должны быть проверены.

Мой текущий подход должен создать объекты Потока в junit методе тестирования, цикл вручную реальные тестовые сценарии в каждом выполнении () метод, ожидать всех потоков и затем проверить утверждения. Но с помощью этого, у меня есть большой шаблонный блок кода для каждого теста.

Каковы Ваши события?

15
задан MRalwasser 15 July 2010 в 13:41
поделиться

3 ответа

Есть ConTest , а также GroboUtils .

Я использовал GroboUtils много лет назад, и он сработал. ConTest новее, и сейчас я предпочитаю использовать его как отправную точку, поскольку вместо того, чтобы полагаться только на метод проб и ошибок, инструментарий вынуждает выполнять определенные чередования потоков, обеспечивая детерминированный тест. Напротив, GroboUtils MultiThreadedTestRunner просто запускает тесты и надеется, что планировщик произведет чередование, которое приведет к появлению ошибки потока.

РЕДАКТИРОВАТЬ: См. Также ConcuTest , который также выполняет принудительное чередование и является бесплатным.

11
ответ дан 1 December 2019 в 04:27
поделиться

Существует также MultithreadedTC Билла Пью из компании FindBugs.

4
ответ дан 1 December 2019 в 04:27
поделиться

Простое использование библиотек параллелизма упростило бы ваш код. Вы можете превратить свой код котельной плиты в один метод.

Что-то вроде

public static void runAll(int times, Runnable... tests) {

}
0
ответ дан 1 December 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: