Как отключить набор тестов в ScalaTest

Как отключить тестовый набор, т.е. все тесты внутри класса, расширяющие FunSpec?

Единственное решение, которое я нашел, это заменить it ignore перед каждым тестом, но это скучно делать с десятками тестов.

Ответ 1

Простым способом сделать это в 1.8 является добавление конструктора, который принимает фиктивный аргумент. ScalaTest (и sbt) не обнаружит класс, если у него нет открытого конструктора no-arg:

class MySuite(ignore: String) extends FunSuite { 
  // ...
}

В 2.0 вы сможете просто написать @Ignore в классе:

@Ignore
class MySuite extends FunSuite {
  // ...
}

Ответ 2

Вы можете использовать @Ignore как для разных тестов, так и для всего костюма.

Ответ 4

Метки - это один из вариантов, но вам нужно пометить каждый тест соответственно, вы не можете исключить его полностью. Однако, как отмечал пользователь272735, тегирование - это одноразовое усилие.

Другим вариантом является определение мастер-пакета и ограничение списка nestedSuites на nestedSuites которые вы хотите запустить (см. Документы). Очевидным недостатком является то, что вы должны поддерживать мастер-набор тестов, т.е. Добавлять к нему недавно созданные тестовые пакеты. Вы могли бы избежать этого, рекурсив через свои папки, создав список всех тестовых материалов, которые можно найти, и вычитайте те, которые вы ввели в черный список. Кроме того, рекурсия через ваши папки уже дает вам возможность отфильтровать файлы, которые соответствуют (извне) заданному критерию.

Третий вариант - хотя и более хакерский - это изменить пакет, к которому принадлежат сюиты, которые вы хотите использовать в черном списке. Затем вы можете использовать тестовый бегун только для запуска костюмов, включенных в определенные пакеты. Подробнее читайте в документах, раздел "Указание" только для членов "и" подстановочные "пути" Путь ".