Test::Fatal does not properly trap the syntax error in t/lib/Role/BreakOnLoad.pm -- it crashes the entire thing instead of being caught in the dies_ok. Test::Exception does properly catch this. I get:

create_anon_role_pass.t .. Useless use of a constant ("Class continues to die when atte"...) in void context at create_anon_role_pass.t line 42.

crashing the test (returns 2), but this is literally the entire point of the test and shouldn't be causing the test itself to fail.