Нет, JUnit не поддерживает порядок тестирования, за исключением того, что вы говорите через Suite
Это только определяет порядок, в котором выполняются тесты классы .Это было там в течение долгого времени, включая классы JUnit 3 Suite.
Для более полного объяснения, здесь мы должны поговорить о трех вещах:
- порядоктестирует классы в наборе тестов
- упорядочение тестовых классов, когда они обнаруживаются путем отражения Eclipse или Maven
- упорядочение тестовых методов (аннотировано @Test) внутри тестового класса.
Упорядочение классов тестов в наборе тестов
Когда вы указываете список классов, которые должны выполняться в наборе тестов, вы определяете массив, и эти классы тестов будутисполняться по порядку, кроме случаев, когда вы выполняете параллельное выполнение.К сожалению, это позволяет вводить зависимости между вашими тестовыми классами.
Порядок тестовых классов, когда они найдены с помощью отражения
При поиске классов по пути к классам, порядок, в котором они находятсяне гарантируется, поэтому не может зависеть.На самом деле поиск выполняет не JUnit, а плагин Eclipse Junit, или maven surefire или failsafe.
Порядок методов тестирования внутри класса тестирования
JUnit не гарантируетпорядок выполнения тестов в классе.В большинстве случаев в большинстве JVM до версии 7 порядок их нахождения с использованием отражения находится в порядке декларации, то есть в том порядке, в котором они находятся в файле.Это порядок, в котором они выполняются.Однако с JVM 7 это больше не гарантируется, поэтому не будет согласованного порядка.Существует проблема github # 293 Сортировать методы проверки на предсказуемость , открытые с предлагаемыми решениями, и в списке рассылки junit есть ветка: Порядок выполнения метода алфавитного тестирования? .Таким образом, вы не можете зависеть от порядка выполнения тестов с использованием JUnit, но это в настоящее время обсуждается.