Как сообщить ScalaTest о запуске класса с аннотацией DoNotDiscover?

ScalaTest 2.0 не запускает автоматически классы, расширяющие Suite, но снабжены аннотацией DoNotDiscover. Однако он "будет запускать классы с аннотацией DoNotDiscover, если его явно попросить, он просто не обнаружит их".

Но как мне явно попросить ScalaTest запустить такой аннотированный класс DoNotDiscover?

ScalaTest игнорирует все такие классы, хотя я указываю их явно через test-only. Пример: у меня есть этот набор тестов:

@DoNotDiscover
class AnonLoginSpecRunner
  extends org.scalatest.Suites(new AnonLoginSpec)
  with StartServerAndChromeDriverFactory

Но когда я делаю это:

[my-project] $ test-only test.e2e.specs.AnonLoginSpecRunner

СкалаТест говорит:

[info] No tests to run for securesocial/test:test-only
[info] Passed: : Total 0, Failed 0, Errors 0, Passed 0, Skipped 0

Что я могу сделать, чтобы ScalaTest запускал мой AnonLoginSpecRunner?

В качестве обходного пути я сейчас делаю это:

[debiki-server] $ test:console
scala> (new test.e2e.specs.AnonLoginSpecRunner).execute()

и это работает, но это немного громоздко, и я хотел бы избежать этого.

(Причина, по которой я использую @DoNotDiscover, заключается в том, что у меня есть основной пакет, который раз и навсегда настраивает драйвер Chrome, а затем запускает список всех спецификаций тестов E2E.)


person KajMagnus    schedule 24.01.2014    source источник
comment
Я разместил этот вопрос в списке рассылки scalatest-users.   -  person KajMagnus    schedule 26.01.2014
comment
Вы когда-нибудь заставляли это работать? Или найти способ, чтобы только тест работал, но не включался в обычный sbt test?   -  person ericpeters    schedule 14.12.2016
comment
@ericpeters Нет, не думаю, что когда-либо делал. В настоящее время по другим, не связанным с этим причинам, я заменил весь свой сквозной тестовый код ScalaTest на Webdriver.io и Typescript, и это прекрасно работает. Тесты e2e были единственными, которые использовали DoNotDiscover. Так что мне это больше не нужно. — Я использую ScalaTest для модульного и функционального тестирования — и для этого мне не нужен DoNotDiscover. Я часто набираю test-only package.ClassName, хотя для проверки только одного класса. Мне очень нравится ScalaTest :-)   -  person KajMagnus    schedule 15.12.2016


Ответы (1)


Решение, которое я придумал, состояло в том, чтобы создать сценарий оболочки, который запускал тест через «Runner» ScalaTest через SBT.

поэтому простой скрипт ./sbtTestFoo.sh выглядит примерно так:

sbt "test:run-main org.scalatest.tools.Runner -o -s
com.foo.TestFoo"
person ericpeters    schedule 14.12.2016