Github user mpkorstanje commented on the issue:
https://github.com/apache/maven-surefire/pull/150
> Why you have chosen provider surefire-junit47 and not also the
surefire-junit4?
While it would be possible to change surefire-junit4 to filter by
description there is no need to. Prior to JUnit 4.11 descriptions use their
display name to test for equality. The display name was composed of a method
name and a class name. As such filtering by a description created from the
method and class name of a failed test and filtering by the description of that
failed test will yield the same result.
```java
Description failedTestDescription =
Description.createTestDescription(Test.class, "shouldTestSomething");
Description descriptionFromFailedMethodAndClassName =
Description.createTestDescription(Test.class, "shouldTestSomething");
assertEquals(failedTestDescription,
descriptionFromFailedMethodAndClassName);
assertEquals(failedTestDescription.getDisplayName(),
descriptionFromFailedMethodAndClassName.getDisplayName());
```
> Why the method generateFailingTestDescriptions has to return
Set<Description> and not the previous Map<Class<?>, Set<String>>?
With the introduction of the `fUniqueId` property to test for equality
between descriptions in JUnit 4.11 filtering by a description created from the
method and class name of a failed test and filtering by the description of that
failed test are no longer the same. Hence the need to use the description of
the failed test instead of its method and class name.
For example:
```java
Description failedTestDescription =
Description.createTestDescription(Test.class.getCanonicalName(),
"shouldTestSomething", "my-test-id");
Description descriptionFromFailedMethodAndClassName =
Description.createTestDescription(Test.class, "shouldTestSomething");
assertNotEquals(failedTestDescription,
descriptionFromFailedMethodAndClassName);
assertEquals(failedTestDescription.getDisplayName(),
descriptionFromFailedMethodAndClassName.getDisplayName());
```
---