The use case is to annotate tests that can not yet run but should already be committed.
The main difference to
Ignore is that the test are executed, but test failures are ignored.
If the test passes without an error, then it will be reported as failure since the
annotation should be removed. This way the tests will become part of the normal tests
instead of being ignored forever.
Groovy has the
NotYetImplemented annotation which is similar but behaves a differently.