scoverage / sbt-scoverage

sbt plugin for scoverage
Apache License 2.0
649 stars 156 forks source link

The plugin does not print all the errors on failure #539

Open satorg opened 4 months ago

satorg commented 4 months ago

With coverageFailOnMinimum := true when the plugin encounters a metric that is failing, it prints just that metric and then halts. However, if there are multiple metrics failing across the project, it requires multiple passes to be done to fix them all. It is especially troublesome in big/large/huge projects with gazillions of tests to be run to gather all the results.

satorg commented 4 months ago

Most likely the culprit is CoverageMinimum, e.g.: https://github.com/scoverage/sbt-scoverage/blob/6143421c9f161f59ae5c6a87678dfd06db0b1dc2/src/main/scala/scoverage/CoverageMinimum.scala#L12-L26

Apparently, if the s"Branch:$metric" metric fails, the next one won't be looked into.

Similarly, these checks also execute up to the first failing one only: https://github.com/scoverage/sbt-scoverage/blob/6143421c9f161f59ae5c6a87678dfd06db0b1dc2/src/main/scala/scoverage/CoverageMinimum.scala#L67-L73