@@ -0,0 +1,1136 @@
+package com.github.havarunner.rules;%0A%0Aimport com.github.havarunner.HavaRunner;%0Aimport org.junit.Rule;%0Aimport org.junit.Test;%0Aimport org.junit.rules.TestRule;%0Aimport org.junit.runner.Description;%0Aimport org.junit.runner.notification.Failure;%0Aimport org.junit.runners.model.Statement;%0A%0Aimport static com.github.havarunner.TestHelper.runAndRecordFailure;%0Aimport static org.junit.Assert.assertEquals;%0A%0Apublic class WhenRuleFailsTest %7B%0A%0A    @Test%0A    public void HavaRunner_will_give_a_helpful_error_message_if_a_rule_throws_an_exception() %7B%0A        Failure failure = runAndRecordFailure(new HavaRunner(TestWithRule.class));%0A        assertEquals(%22Fail!%22, failure.getMessage());%0A        assertEquals(IllegalStateException.class, failure.getException().getClass());%0A    %7D%0A%0A    static class TestWithRule %7B%0A            @Rule%0A            TestRule rule = new TestRule() %7B%0A                @Override%0A                public Statement apply(Statement base, Description description) %7B%0A                    throw new IllegalStateException(%22Fail!%22);%0A                %7D%0A            %7D;%0A%0A            @Test%0A            void hello() %7B%0A            %7D%0A        %7D%0A%7D%0A

Add spec for failing @Rule