Подтвердить что ты не робот

Как заставить тесты всегда работать в одном порядке в 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). Но что происходит сейчас, он запускается в другом порядке каждый раз.

4b9b3361

Ответ 1

DiscoverySuite является приватным для ScalaTest, да. Например, порядок выполнения тестов в Spec (теперь называемый FunSpec) определяется как порядок появления в исходном файле. Чтобы определить порядок самих тестовых классов, вам нужно будет определить метод nestedSuites и запустить этот пакет-оболочку вместо использования Discovery. Вы можете вернуться к использованию открытия, когда вам больше не нужен заказ. Я рассмотрю добавление определенного порядка в DiscoverySuite в следующей версии ScalaTest.