scalameta / munit

Scala testing library with actionable errors and extensible APIs
https://scalameta.org/munit
Apache License 2.0
428 stars 88 forks source link

Full stack trace for assertEquals #782

Open timothyklim opened 3 months ago

timothyklim commented 3 months ago

For assert I get full stack trace like

==> X xxx.XxxSpec.xxx  0.003s munit.FailException: assertion failed
    at munit.FunSuite.assert(FunSuite.scala:11)
    at xxx.XxxSpec.$init$$$anonfun$2$$anonfun$1(XxxSpec.scala:72)
    at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:619)
    at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:617)
    at scala.collection.parallel.immutable.ParHashMap$ParHashMapIterator.foreach(ParHashMap.scala:78)
    at scala.collection.parallel.ParIterableLike$Foreach.leaf(ParIterableLike.scala:938)
    at scala.collection.parallel.Task.tryLeaf$$anonfun$1(Tasks.scala:52)
    at scala.util.control.Breaks$$anon$1.catchBreak(Breaks.scala:97)
    at scala.collection.parallel.Task.tryLeaf(Tasks.scala:56)
    at scala.collection.parallel.Task.tryLeaf$(Tasks.scala:21)
    at scala.collection.parallel.ParIterableLike$Foreach.tryLeaf(ParIterableLike.scala:935)
    at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.internal(Tasks.scala:159)
    at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.internal$(Tasks.scala:142)
    at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$AWSFJTWrappedTask.internal(Tasks.scala:304)
    at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.compute(Tasks.scala:149)
    at scala.collection.parallel.AdaptiveWorkStealingTasks$AWSTWrappedTask.compute$(Tasks.scala:142)
    at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$AWSFJTWrappedTask.compute(Tasks.scala:304)
    at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
    at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
    at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)

but for assertEquals I need to debug all asserts in all helpers because stack trace is a single line:

    at munit.Assertions.failComparison(Assertions.scala:278)
mzuehlke commented 3 months ago

Which munit version are you using?

Could you verify if this is still the case with 1.0.0-RC1, please.

timothyklim commented 3 months ago

Which munit version are you using?

Could you verify if this is still the case with 1.0.0-RC1, please.

I'm using 1.0.0-RC1.

tgodzik commented 3 months ago

As a workaround you can use -F option for running. In sbt added after -- for example: sbt project/testOnly MySuite -- -F

Otherwise, looks like a but. But I don't think it's blocking 1.0.0.

timothyklim commented 3 months ago

As a workaround you can use -F option for running. In sbt added after -- for example: sbt project/testOnly MySuite -- -F

Otherwise, looks like a but. But I don't think it's blocking 1.0.0.

I'm using bazel and want to understand what I need to do inside test runner please. Found in ./docs/troubleshooting.md

timothyklim commented 2 months ago

As a workaround you can use -F option for running. In sbt added after -- for example: sbt project/testOnly MySuite -- -F

Otherwise, looks like a but. But I don't think it's blocking 1.0.0.

With -F the same result on 1.0.0 release.