Skip to content

Discovery issue incorrectly reported for abstract inner class #4635

Closed
@sbrannen

Description

@sbrannen

Overview

In Spring Framework's test suite, I introduced a test fixture to replicate an issued reported by a user, where the user had a @Nested test class that extended an abstract inner class.

That is naturally supported and works fine; however, the new discovery issue reporting feature introduced in JUnit 5.13 incorrectly warns that such a declaration is invalid.

For example, when running MockitoBeanNestedAndTypeHierarchiesWithSuperclassPresentTwiceTests in spring-test, I see the following warning.

WARNING: TestEngine with ID 'junit-jupiter' encountered a non-critical issue during test discovery:

(1) [WARNING] Inner class 'org.springframework.test.context.bean.override.mockito.MockitoBeanNestedAndTypeHierarchiesWithEnclosingClassPresentTwiceTests$AbstractBaseClassForNestedTests' looks like it was intended to be a test class but will not be executed. It must be static or annotated with @Nested.
    Source: ClassSource [className = 'org.springframework.test.context.bean.override.mockito.MockitoBeanNestedAndTypeHierarchiesWithEnclosingClassPresentTwiceTests$AbstractBaseClassForNestedTests', filePosition = null]
            at org.springframework.test.context.bean.override.mockito.MockitoBeanNestedAndTypeHierarchiesWithEnclosingClassPresentTwiceTests$AbstractBaseClassForNestedTests.<no-method>(SourceFile:0)

Note that AbstractBaseClassForNestedTests is inherited from AbstractMockitoBeanNestedAndTypeHierarchiesWithSuperclassPresentTwiceTests, and it is intentionally not "static or annotated with @Nested."

Thus, I think the discovery issue check should be updated so that it does not report that, if the inner class in question is abstract.

Related Issues

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions