Как заставить тесты всегда работать в одном порядке в Scalatest?
Мы используем особенность Spec для наших тестов в ScalaTest. когда мы запускаем весь пакет, он не всегда работает в том же порядке. Большинство ответов в google предлагают определение пакета и указание всех имен тестов. Но это требует от нас добавления тестового имени каждый раз, когда мы добавляем новый тест.
Можно ли использовать сам DiscoverySuite и определить порядок выполнения теста? Подобно запускам тесты в алфавитном порядке. Я посмотрел на расширение DiscoverySuite, но DiscoverySuite, похоже, является приватным для сканирования.
--- Дополнительная информация ----
По порядку я означает, что если есть тесты A, B, C.
class A extends Spec {..}
class B extends Spec {..}
class C extends Spec {..}
Затем я хочу, чтобы тесты выполнялись по порядку (A, B, C). Но что происходит сейчас, он запускается в другом порядке каждый раз.
Ответы
Ответ 1
DiscoverySuite является приватным для ScalaTest, да. Например, порядок выполнения тестов в Spec (теперь называемый FunSpec) определяется как порядок появления в исходном файле. Чтобы определить порядок самих тестовых классов, вам нужно будет определить метод nestedSuites и запустить этот пакет-оболочку вместо использования Discovery. Вы можете вернуться к использованию открытия, когда вам больше не нужен заказ. Я рассмотрю добавление определенного порядка в DiscoverySuite в следующей версии ScalaTest.
Ответ 2
См. http://doc.scalatest.org/1.0/org/scalatest/SequentialNestedSuiteExecution.html
Это, по-видимому, обеспечивает конкретное поведение, которое вы ищете.