Karl Heinz Marbaise created SUREFIRE-2113: ---------------------------------------------
Summary: @TempDir does not correctly work Key: SUREFIRE-2113 URL: https://issues.apache.org/jira/browse/SUREFIRE-2113 Project: Maven Surefire Issue Type: Bug Components: JUnit 5.x support Affects Versions: 3.0.0-M7, 2.22.2 Reporter: Karl Heinz Marbaise Having the following test: {code:java} class TempDirTest { @Test void testTempDir(@TempDir Path tmpdir) { System.out.println("@TempDir : " + tmpdir); System.out.println("java.io.tmpdir : " + System.getProperty("java.io.tmpdir")); Path actual = tmpdir.getParent().toAbsolutePath(); Path expected = Path.of(System.getProperty("java.io.tmpdir")); Assertions.assertEquals(expected, actual); } } {code} If I run via: {code} mvn -Djava.io.tmpdir=/tmp/custom clean test {code} within the following environment: {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 11.0.15, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/11.0.15-zulu/zulu-11.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" ``` The given test succeeds. If I use the following environment (changed JDK version): {code} Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /Users/khm/tools/maven Java version: 17.0.4, vendor: Azul Systems, Inc., runtime: /Users/khm/.sdkman/candidates/java/17.0.4-zulu/zulu-17.jdk/Contents/Home Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "12.4", arch: "aarch64", family: "mac" {code} The given test fails: {code} [INFO] ------------------------------------------------------- [INFO] Running org.example.TempDirTest @TempDir : /var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T/junit2987236559648574880 java.io.tmpdir : /tmp/custom [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.027 s <<< FAILURE! - in org.example.TempDirTest [ERROR] testTempDir{Path} Time elapsed: 0.023 s <<< FAILURE! org.opentest4j.AssertionFailedError: expected: </tmp/custom> but was: </var/folders/wj/73qxv5hd6p573p9ytbf4kcgh0000gn/T> at org.example.TempDirTest.testTempDir(TempDirTest.java:18) [INFO] [INFO] Results: {code} I've checked that with different combinations: * Maven 3.8.6 * JUnit Jupiter 5.8.2 / 5.9.0 * Maven Surefire Plugin Version: * 2.22.2 * 3.0.0-M7 * [Platform Maven Plugin](https://github.com/sormuras/junit-platform-maven-plugin) I have create a full [working example](https://github.com/khmarbaise/tempdir-annotation) which contains appropriate named branches for the different combinations. I've also tested the same combinations with JDK 17/11 from liberica with the same result. Also with JDK18 the test fails. After more checking I found out that via the standalone launcher, there is no problem at all. (no difference between jdk versions). {code} java -Djava.io.tmpdir=/tmp/custom -jar ~/.m2/repository/org/junit/platform/junit-platform-console-standalone/1.9.0/junit-platform-console-standalone-1.9.0.jar -cp classes:target/test-classes --scan-classpath {code} The output: {code} @TempDir : /tmp/custom/junit17756560401872268189 java.io.tmpdir : /tmp/custom Thanks for using JUnit! Support its development at https://junit.org/sponsoring ╷ ├─ JUnit Jupiter ✔ │ └─ TempDirTest ✔ │ └─ testTempDir(Path) ✔ ├─ JUnit Vintage ✔ └─ JUnit Platform Suite ✔ Test run finished after 51 ms [ 4 containers found ] [ 0 containers skipped ] [ 4 containers started ] [ 0 containers aborted ] [ 4 containers successful ] [ 0 containers failed ] [ 1 tests found ] [ 0 tests skipped ] [ 1 tests started ] [ 0 tests aborted ] [ 1 tests successful ] [ 0 tests failed ] {code} Has someone an Idea what could cause such thing? -- This message was sent by Atlassian Jira (v8.20.10#820010)