== Why is this an issue?

When a test fails due, for example, to infrastructure issues, you might want to ignore it temporarily. But without some kind of notation about why the test is being ignored, it may never be reactivated. Such tests are difficult to address without comprehensive knowledge of the project, and end up polluting their projects.


This rule raises an issue for each ignored test that does not have any comment about why it is being skipped.

* For Junit4, this rule targets the @Ignore annotation.
* For Junit5, this rule targets the @Disabled annotation.
* Cases where assumeTrue(false) or assumeFalse(true) are used to skip tests are targeted as well.

=== Noncompliant code example

[source,java]
----
@Ignore  // Noncompliant
@Test
public void testDoTheThing() { 
  // ...
----
or

[source,java]
----
@Test
public void testDoTheThing() { 
  Assume.assumeFalse(true); // Noncompliant
  // ...
----

=== Compliant solution

[source,java]
----
@Test
@Ignore("See Ticket #1234")
public void testDoTheThing() { 
  // ...
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

For annotation: Either add an explanation about why this test is skipped or remove the "[@Ignore|@Disabled]" annotation.

For assumeX calls: This assumption is called with a boolean constant; remove it or, to skip this test use an @Ignore/@Disabled annotation in combination with an explanation about why it is skipped.


=== Highlighting

@Ignore/@Disabled annotation


'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
