2013-04-16 4 views
13

Можно ли параллельно запускать тесты junit в intelliJ? Если да, то как это сделать?Запуск тестов юнита в intelliJ параллельно

Я установил параметр «fork» на уровень класса, и это ничего не делало - на самом деле это делало все немного медленнее, поэтому я не уверен, что «fork» делает это выгодно?

Возможно ли это сделать только с использованием intelliJ, или мне нужна какая-то причудливая тестовая рамочная система и все, что у вас есть?

И, наконец, если предположить, что это возможно, можно ли управлять количеством вилок или потоков или тем, что они хотят назвать?

ОБНОВЛЕНИЕ: кто-то связался с вопросом, который мог бы ответить на этот вопрос. Я просмотрел этот вопрос до публикации - я не уверен, что этот вопрос действительно «отвечает». В нем просто говорится, что есть проблема, и эта проблема была реализована в intelliJ. Я не вижу , как реализовать его в любом месте.

ОБНОВЛЕНИЕ: что означает «ничего не значит»: это просто делает вещи медленнее, а это не полезно. Я имею в виду, может быть, ваши тесты бегут быстро и вы хотите замедлить их, чтобы оценить некоторые Баха? Это круто. Я просто хочу, чтобы мой бежал быстрее, я устал от Баха.

+1

Определите, что «это ничего не делало», оно * делает что-то, оно запускает ваши тесты в новой JVM. Это имеет значение * zero * для выполнения параллельных параллельных тестов. –

+0

Возможно использование некоторой поддержки maven, начиная с http://stackoverflow.com/questions/423627/running-junit-tests-in-parallel. Я понимаю, что ему нужно какое-то maven hoo-hah, поэтому я не ставил его в качестве ответа. –

+0

@DaveNewton Я полагаю, что я имел в виду «ничего не делал, чтобы облегчить проблему». – bharal

ответ

4

Вы можете использовать junit-toolbox. Это библиотека расширений для jUnit, которая указана на самом сайте jUnit.

Это расширение предлагает the ParallelSuite. Благодаря этому вы без труда можете создать класс AllTest, который будет проводить тесты параллельно. Минимальный AllTest может выглядеть как код ниже, используя функцию шаблона, представленную с помощью junit-toolbox.

@RunWith(ParallelSuite.class) 
@SuiteClasses("**/*Test.class") 
public class AllTests {} 

Это позволит создать столько потоков для параллельного выполнения в отчетах JVM через availableProcessors. Чтобы переопределить это, вы можете установить системное свойство maxParallelTestThreads.

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