Как настроить sbt test/ScalaTest только для показа сбоев?
Есть ли способ обрезать результаты теста, чтобы отображать только текст результата для модульных тестов только в случае неудачи unit test? Я работаю над проектом Scala, который имеет 850 модульных тестов, а зеленый текст из успешных модульных тестов затрудняет сосредоточение только на ошибках.
Пример того, что я говорю:
[info] - should have colors
[info] - should not be dead
//.... x 100
[info] - animals should not be rainbows *** FAILED ***
[info] -"[rainbow]s" was not equal to "[ponie]s" (HappinessSpec.scala:31)
Что бы я хотел, это то, что просто показывает неудачу (ы):
[info] - animals should not be rainbows *** FAILED ***
[info] -"[rainbow]s" was not equal to "[ponie]s" (HappinessSpec.scala:31)
Я понимаю, что есть команда test-quick
sbt, но она все еще работает 300 успешно
модульные тесты в моем случае, когда есть только 30 отказов.
Что-то в соответствии с этим с точки зрения использования - это то, что я ищу:
sbt> ~ test -showOnlyFailures
Я также был бы доволен тем, что показывает все сбои в конце работы
модульные тесты. IIRC, вот как работает RSpec в Ruby...
Ответы
Ответ 1
После добавления следующего к build.sbt scalaTest покажет сводку после стандартного отчета:
testOptions in Test += Tests.Argument("-oI")
I - show reminder of failed and canceled tests without stack traces
T - show reminder of failed and canceled tests with short stack traces
G - show reminder of failed and canceled tests with full stack traces
Существует также флаг "Drop TestSucceeded events", но я не смог его использовать:
http://www.scalatest.org/user_guide/using_the_runner
Ответ 2
Для тех, кто использует maven с плагином scalatest-maven, вы можете добавить эту конфигурацию:
<configuration>
<stdout>I</stdout>
</configuration>
Ответ 3
Вы можете попробовать команду sbt
last-grep error test
Это должно показывать только ошибки/сбои.
Ответ 4
Обновлен ответ для Scalatest 3.
Здесь новый синтаксис для вашего файла build.sbt
для переиздания всех сбоев в нижней части тестового набора:
testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oI")
Возможно, вы также захотите подавить информационные уведомления, поэтому вам легче увидеть сбои.
testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oNCXELOPQRM")
Здесь перечислены все варианты:
- События NString для тестирования событий
- C - drop TestSucceeded events
- X-drop TestIgnored events
- События E-drop TestPending
- События H-drop SuiteStarting
- L - drop SuiteCompleted events
- O - drop InfoProvided events
- P - drop ScopeОткрытые события
- Q - drop ScopeClosed events
- R - падение событий ScopePending
- M - drop MarkupProvided events
"-oI"
снова печатает уведомления об ошибках в конце запуска тестового набора, тогда как "-oNCXELOPQRM"
показывает только те тесты, которые не выполняются.
Подробнее см. раздел настройки реестров на веб-сайте ScalaTest.