スタックトレースは切り捨てられます-例えば末尾は[info] ...
です
last
を使用したりtraceLevel
を変更したりしても効果はありません。単にsbtラッパーの完全なスタックトレースを出力するだけです。
これはtestngでテストしています(また、私はscalatestとsl4jを使用していると思います)
ドキュメントはこちら にあるヒントの使用:
(引用)
Sbtで実行したときに表示される出力は、1)色をオフにする、2)短いスタックトレースを表示する、3)完全なスタックトレースを表示する、4)すべての期間を表示するように構成できます。そのためには、ScalaTestに-o引数を渡し、-oの後に次の組み合わせを配置する必要があります。
- D-期間を表示
- S-短いスタックトレースを表示する
- F-完全なスタックトレースを表示する
- W-色なし
たとえば、「-oDF」は完全なスタックトレースと期間(各テストに費やされた時間)を表示します。
SbtからScalaTestに引数を渡すには、次のようにテストオプションをグローバルに追加します。
testOptions in Test += Tests.Argument("-oD")
(引用の残りについてはウェブサイトを参照してください)
次のsbtコマンドを使用して、テストで完全なスタックトレースを有効にできます。
> set testOptions in YourProjectName += Tests.Argument("-oF")
Sashaのコメントによれば、これは以下に示すように、テスト実行ごとにコマンドラインから行うこともできます。
$ sbt test -- -oF
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>)
...