Я хотел выбрать порядок выполнить тесты JUnit. У меня есть 4 класса с несколькими методами тестирования в нем, моя цель состоит в том, чтобы выполнить, например, метод Y класса A, затем метод X от класса B и наконец метода Z от класса A.
Вы помогли бы?
Как правило, вы не можете указать порядок, в котором выполняются отдельные модульные тесты (хотя вы можете указать приоритеты в TestNG и иметь разные приоритеты для каждого теста ). Однако модульные тесты должны выполняться изолированно, поэтому порядок тестов не имеет значения. Это плохая практика. Если вам нужно, чтобы тесты располагались в определенном порядке, вам следует переосмыслить свой дизайн. Если вы опубликуете подробности о том, зачем вам нужен заказ, я уверен, что мы сможем предложить свои предложения.
Ответ JUnit на этот вопрос - создать один метод тестирования, подобный этому:
@Test public void testAll() {
classA.y();
classB.x();
classA.z();
}
Это, очевидно, неудовлетворительный ответ в некоторых случаях (когда установка и разборка имеет значение), но взгляд JUnit на модульное тестирование таков, что если тесты не являются независимыми, вы делаете что-то неправильно.
Если вышеперечисленное не соответствует вашим потребностям, взгляните на TestNG.
Создайте TestSuite и вызовите методы тестирования в желаемом порядке. @Yishai прав в том, что JUnit спроектирован таким образом, чтобы каждый тест был независимым. Поэтому, если вы вызываете тестовые методы, которые могут запускаться независимо, тогда не должно возникнуть проблем с созданием TestSuite для покрытия сценария для определенного порядка вызова.
Если предыдущий ответ не удовлетворяет, я заметил, что с Sun JVM JUnit всегда выполняет модульные тесты в порядок, в котором они определены. Очевидно, что полагаться на это - плохая идея.