Проще всего (как минимум в t нового кода), чтобы сделать это, запустить тест в качестве параметризованного теста (аннотировать с @RunWith(Parameterized.class)
и добавить метод для предоставления 10 пустых параметров). Таким образом, среда будет проходить тест 10 раз.
Этот тест должен быть единственным тестом в классе или лучше всего использовать все методы тестирования, которые должны выполняться 10 раз в классе.
Вот пример:
@RunWith(Parameterized.class)
public class RunTenTimes {
@Parameterized.Parameters
public static Object[][] data() {
return new Object[10][0];
}
public RunTenTimes() {
}
@Test
public void runsTenTimes() {
System.out.println("run");
}
}
С выше, можно даже сделать это с помощью конструктора параметров меньше, но я не уверен, что если каркасные авторы Подразумевается, что, или, если будет ломаться в будущем.
Если вы внедряете свой собственный бегун, то вы можете провести тест 10 раз подряд. Если вы используете сторонний бегун, то с 4.7 вы можете использовать новую аннотацию @Rule
и реализовать интерфейс MethodRule
, чтобы он принял оператор и выполнил его 10 раз в цикле for. Нынешним недостатком такого подхода является то, что @Before
и @After
запускаются только один раз. Вероятно, это изменится в следующей версии JUnit (@Before
будет работать после @Rule
), но независимо от того, будете ли вы действовать на одном экземпляре объекта (что не соответствует бегуну Parameterized
). Это предполагает, что любой бегун, которым вы управляете классом, правильно распознает аннотации @Rule
. Это только в случае, если он делегирует бегунов JUnit.
Если вы работаете с пользовательским бегуном, который не распознает аннотацию @Rule
, то вы действительно застряли в том, что вам нужно написать свой собственный бегун, который соответствующим образом делегирует этому Runner и запускает его 10 раз.
Обратите внимание, что есть другие способы потенциально решить эту проблему (например, бегун Теория), но для всех них требуется бегун. К сожалению, JUnit в настоящее время не поддерживает слои бегунов. Это бегун, который соединяет других бегунов.
Мне очень интересно, почему вы хотели бы сделать это. – Buhb
Я запускаю большой тест с черным ящиком, сделал небольшое изменение и хочу посмотреть, как это повлияло на стабильность этого ранее плохого теста. –
Это действительно, за исключением того, что вы хотите, чтобы он работал до отказа, в то время как я просто хочу запускать его несколько раз, что может повлиять на ответы, которые я получаю. –