Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Duplicate
-
Affects Version/s: 2.4.3
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Environment:Ubuntu
-
Complexity:Intermediate
Description
Having recently upgradet to 2.4.3 I realise that all classes whose name conforms to the above described pattern are being treated as JUnit test classes, meaning that if the class isnt scoped public, it does not provide a default construct and it does not contain a test method, it will be reported as containing failed tests, i.e.:
Tests in error:
initializationError0(com.mycompany...TestMethodConfiguration)
initializationError1(com.mycompany...TestMethodConfiguration)
Tests run: 246, Failures: 0, Errors: 2, Skipped: 0
The methods initializationError0 and 1 do not exist in the class obviously.
Surefire didn't use to treat classes based on naming conventions unless the class name ended with "Test".
Issue Links
- duplicates
-
SUREFIRE-482
Surefire tries to run JUnit4 tests that contain no @Test annotations
-
When using JUnit 4 or TestNG it should not run any tests that are not marked as @Test
Regardless of naming pattern.
That is specified in both the JUnit4 and TestNG docs.
Therefore if I have ParentTest that should not be run since if it is not marked as @Test