Toots du Jour (Aug 29)

<1 min read

New bld Extension: JUnit Reporter

<1 min read

bld
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.

Robin Hood

1 min read

Following the Norman invasion of England, Rob — a Saxon forester's son — and Marian, the daughter of a Norman lord — fall in love and work together to fight for justice and freedom. As Rob rises as the leader of a band of rebel outlaws, Marian infiltrates the power at court, as both work together to thwart royal corruption and bring peace to the land.


Affinity

2 min read

A former Navy SEAL battling PTSD finds his solitary Southeast Asian life disrupted by a mysterious woman washing ashore near his home.

Deathstalker

2 min read

The warrior Deathstalker is tasked by an old witch lady to obtain and unite the three powers of creation – a chalice, an amulet, and a sword – lest the evil magician Munkar get them and use them for nefarious purposes. After obtaining the sword, Deathstalker joins with other travelers going to the Big Tournament to determine the strongest warrior. The false king holds the true princess in captivity, and plots to have Deathstalker killed, and Deathstalker must fight to free the princess.