Как мне многократно запускать тестовый класс junit5 в течение длительного периода времени, в случайном порядке, с несколькими экземплярами? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть аппаратное обеспечение, которое я хотел бы испытать в течение нескольких дней. Интерфейс через устройство осуществляется через библиотеку Java (.jar). Я хотел бы использовать junit5 для написания тестов и использования этой библиотеки (и, следовательно, устройства). Есть некоторые условия, которые мы пытаемся создать: 1) тесты должны быть в случайном порядке и 2) должен быть некоторый уровень параллелизма для тестов.

Вот то, о чем я думал:

Я создаю тестовый класс с именем MyTestClass, в котором есть несколько фиксированных методов тестирования. Я могу установить порядок методов тестирования следующим образом: @TestMethodOrder(MethodOrderer.Random.class)

Часть, которую я не знаю, как сделать дальше, - это развернуть x экземпляров MyTestClass, которые будут выполняться параллельно, ипозвольте мне сказать, запустить каждый экземпляр на y количество часов.

Если в junit5 есть альтернативные методы, которые я могу использовать для достижения своих целей, я весь в ушах.

РЕДАКТИРОВАТЬ: Я еще не проработал все детали, но я думаю, что я собираюсь пойти дальше и упаковать мой тестовый класс в докер-контейнер. Тогда поднимите рой контейнеров. Мне, вероятно, нужно выяснить, как агрегировать отчетность.

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Это Расширение нагрузки JUnit5 может помочь. Чтобы рандомизировать заказ, посетите этот SOF поток .

0 голосов
/ 25 октября 2019

Вы можете сделать это с помощью пользовательского тестового бегуна . Например,

@RunWith(MyTestRunner.class)
@MyTestRunnerContext(
   runTimeSeconds=86_400, 
   threadCount=10, 
   order=Order.RANDOM
)
public class MyTest {
   @Test public void test1() {...} 
   @Test public void test2() {...} 
} 
...