Как отключить набор тестов в ScalaTest
Как отключить набор тестов, т. е. все тесты внутри класса extending FunSpec
?
единственное решение, которое я нашел, - это заменить it
С ignore
перед каждым тестом, но скучно делать это с десятками тестов.
4 ответов
самый простой способ сделать это в 1.8-добавить конструктор, который принимает аргумент-пустышка. ScalaTest (и sbt) не обнаружит класс, если у него нет открытого конструктора no-arg:
class MySuite(ignore: String) extends FunSuite {
// ...
}
в 2.0 вы сможете просто написать @Ignore в классе:
@Ignore
class MySuite extends FunSuite {
// ...
}
можно использовать @Ignore и для определенных тестов и всего костюма.
Tag хлопотные тесты, а затем исключить или включить тесты на основе тега.
пометка-это одноразовое усилие.
Теги-один из вариантов, но вам нужно пометить каждый тест соответственно, вы не можете исключить полные костюмы таким образом. Однако, как упоминалось в user272735, тестирование тегов-это одноразовое усилие.
другой вариант-определение мастер-пакета и ограничение списка nestedSuites
в люксы, которые вы хотели бы запустить (посмотреть документы). Очевидным недостатком является то, что вы должны поддерживать master Test suite, т. е. добавлять в него вновь созданные наборы тестов. Вы могли бы избежать этого рекурсия по папкам, создание списка всех тестовых костюмов, которые можно найти, и вычитание тех, которые вы положили в черный список. Кроме того, рекурсия по папкам уже дает вам возможность отфильтровать файлы, которые соответствуют (внешнему) заданному критерию.
третий вариант-хотя и более хакерский-это изменить пакет, к которому принадлежат наборы, к которым вы хотите черный список. Затем вы можете использовать тестовый бегун только для запуска костюмов, включенных в определенные пакеты. Читать подробнее в разделе "Документы" "указание путей набора"только для членов" и "подстановочный знак"".