goll-michael opened a new issue, #839: URL: https://github.com/apache/maven-surefire/issues/839
### Affected version 3.5.3 ### Bug description ArchUnit tests are not executed correctly with Surefire 3.5.3. For an underlying DTO class ``` package custom; public class MyDTO { private String param; public String getParam() { return param; } public void setParam(String param) { this.param = param; } } ``` the following ArchUnit test is defined ``` package custom; import com.tngtech.archunit.core.importer.ImportOption; import com.tngtech.archunit.junit.AnalyzeClasses; import com.tngtech.archunit.junit.ArchTest; import com.tngtech.archunit.lang.ArchRule; import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; @AnalyzeClasses(packages = "custom", importOptions = ImportOption.DoNotIncludeTests.class) public class ArchUnitTest { @ArchTest public static final ArchRule DTO_IN_PACKAGE_DTO= ArchRuleDefinition.classes() .that().haveSimpleNameEndingWith("DTO") .should().resideInAPackage("..dto.."); } ``` The pom.xml looks like this: ``` <?xml version="1.0"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"> <modelVersion>4.0.0</modelVersion> <groupId>custom</groupId> <artifactId>surefire-test</artifactId> <version>0.0.1</version> <dependencies> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit</artifactId> <version>1.4.0</version> <scope>test</scope> </dependency> <dependency> <groupId>com.tngtech.archunit</groupId> <artifactId>archunit-junit5</artifactId> <version>1.4.0</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.3</version> </plugin> </plugins> </build> </project> ``` When running mvn clean test, the following output is generated (excerpt): ``` [INFO] --- surefire:3.5.3:test (default-test) @ surefire-test --- [INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running custom.ArchUnitTest [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.651 s -- in custom.ArchUnitTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ``` The assumption would be that the test fails, which is the case with version 3.5.2 ``` [INFO] --- surefire:3.5.2:test (default-test) @ surefire-test --- [INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running custom.ArchUnitTest [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.638 s <<< FAILURE! -- in custom.ArchUnitTest [ERROR] ArchUnitTest.DTO_IN_PACKAGE_DTO -- Time elapsed: 0.628 s <<< FAILURE! java.lang.AssertionError: Architecture Violation [Priority: MEDIUM] - Rule 'classes that have simple name ending with 'DTO' should reside in a package '..dto..'' was violated (1 times): Class <custom.MyDTO> does not reside in a package '..dto..' in (MyDTO.java:0) at com.tngtech.archunit.lang.ArchRule$Assertions.assertNoViolation(ArchRule.java:94) at com.tngtech.archunit.lang.ArchRule$Assertions.check(ArchRule.java:86) at com.tngtech.archunit.lang.ArchRule$Factory$SimpleArchRule.check(ArchRule.java:165) at com.tngtech.archunit.lang.syntax.ObjectsShouldInternal.check(ObjectsShouldInternal.java:81) at com.tngtech.archunit.junit.internal.ArchUnitTestDescriptor$ArchUnitRuleDescriptor.execute(ArchUnitTestDescriptor.java:168) at com.tngtech.archunit.junit.internal.ArchUnitTestDescriptor$ArchUnitRuleDescriptor.execute(ArchUnitTestDescriptor.java:151) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) [INFO] [INFO] Results: [INFO] [ERROR] Failures: [ERROR] Architecture Violation [Priority: MEDIUM] - Rule 'classes that have simple name ending with 'DTO' should reside in a package '..dto..'' was violated (1 times): Class <custom.MyDTO> does not reside in a package '..dto..' in (MyDTO.java:0) [INFO] [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org