Как получить полные трассировки стека для исключений, выданных в тестах при использовании sbt и testng? - PullRequest
46 голосов
/ 30 августа 2011

Трассировки стека усекаются - например, они заканчиваются на [info] ...

Использование last или изменение traceLevel не помогает - просто печатается полная трассировка стека оболочки sbt.

Это тестирование с testng (я также считаю, что используют scalatest и sl4j)

Ответы [ 2 ]

54 голосов
/ 12 декабря 2014

Использование подсказок из документации здесь :

(цитируем)

Вы можете настроить вывод, показанный при работе с sbt, четырьмя способами: 1) отключить цвет, 2) показать короткие трассы стека, 3) показать полные стеки и 4) показать длительности для всего. Для этого вы должны передать аргумент -o в ScalaTest, а после -o поместить любую комбинацию:

  • D - показать продолжительность
  • S - показать трассы коротких стеков
  • F - показать полные трассы стека
  • Ш - без цвета

Например, «-oDF» будет отображать трассировки и длительности полного стека (количество времени, затраченного на каждый тест).

Чтобы передать аргументы из sbt в ScalaTest, вы можете добавить глобальные параметры теста, например:

testOptions in Test += Tests.Argument("-oD")

(см. Остальную часть цитаты на сайте)

Вы можете использовать следующую команду sbt для включения трассировки полного стека в тестах:

> set testOptions in YourProjectName += Tests.Argument("-oF")

Согласно комментарию Саши, это также можно сделать из командной строки для каждого теста, как показано ниже.

$ sbt test -- -oF
4 голосов
/ 30 августа 2011

В качестве альтернативы получения SBT для печати полной трассировки стека, не могли бы вы поместить блок try - catch вокруг тестового бегуна? Например, из REPL:

scala> try { throw new Exception } catch { case e => e }
res1: java.lang.Throwable = java.lang.Exception

scala> res1.printStackTrace
java.lang.Exception
    at $line2.$read$$iw$$iw$.liftedTree1$1(<console>:8)
    at $line2.$read$$iw$$iw$.<init>(<console>:8)
    at $line2.$read$$iw$$iw$.<clinit>(<console>)
    ...
...