New bld Extension: JUnit Reporter
<1 min read
Pure java build tool for developers who don't like dealing with build tools
I've released a new extension for bld, JUnit Reporter, which summarizes JUnit failures:
> ./bld compile test
> ./bld reporter
--------------------------------------------------
JUnit Failures Summary
--------------------------------------------------
[1] com.example.ExampleTests (3 failures, 0.011s)
- [1.1] verifyFail(String)[1] ([1] foo)
- [1.2] verifyFail(String)[2] ([2] bar)
- [1.3] verifyHelloFoo()
[2] com.example.MoreTests (2 failures, 0.001s)
- [2.1] verifyMore(String)[3] ([3] qux)
- [2.2] verifyMore(String)[4] ([4] quux)
To display details about the failures:
> ./bld reporter --index=1
--------------------------------------------------
[1] com.example.ExampleTests
--------------------------------------------------
[1.1] Test: verifyFail(String)[1]
- Name: [1] foo
- Type: org.opentest4j.AssertionFailedError
- Message:
expected: <foo> but was: <Hello World!>
- Time: 0.009s
[1.2] Test: verifyFail(String)[2]
- Name: [2] bar
- Type: org.opentest4j.AssertionFailedError
- Message:
expected: <bar> but was: <Hello World!>
- Time: 0.001s
And to display the details of a specific failure:
> ./bld report --i=1.2
--------------------------------------------------
[1] com.example.ExampleTests
--------------------------------------------------
[1.2] Test: verifyFail(String)[2]
- Name: [2] bar
- Type: org.opentest4j.AssertionFailedError
- Message:
expected: <bar> but was: <Hello World!>
- Time: 0.001s
- Trace:
org.opentest4j.AssertionFailedError: expected: <bar> but was: <Hello World!>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:182)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:177)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
...
It's quite opinionated, but pretty useful, especially within a continuous integration (CI) workflow.