From 8bcc6ae420c06d706c965fee289102df96e2c0d3 Mon Sep 17 00:00:00 2001 From: kenji yoshida <6b656e6a69@gmail.com> Date: Tue, 14 Apr 2026 04:07:32 +0900 Subject: [PATCH] [2.x] refactor: Use `IO.withTemporaryDirectory` instead of `File.createTempFile` (#9084) * Use IO.withTemporaryDirectory instead of File.createTempFile * fix JUnitXmlTestsListenerSpec --- .../scala/sbt/JUnitXmlTestsListenerSpec.scala | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/testing/src/test/scala/sbt/JUnitXmlTestsListenerSpec.scala b/testing/src/test/scala/sbt/JUnitXmlTestsListenerSpec.scala index 98074f666..959b5f538 100644 --- a/testing/src/test/scala/sbt/JUnitXmlTestsListenerSpec.scala +++ b/testing/src/test/scala/sbt/JUnitXmlTestsListenerSpec.scala @@ -13,16 +13,14 @@ import java.util.concurrent.atomic.AtomicReference import testing.{ Event as TEvent, OptionalThrowable, Status as TStatus, TestSelector } import util.{ AbstractLogger, Level, ControlEvent, LogEvent } +import sbt.io.IO import sbt.protocol.testing.TestResult import verify.BasicTestSuite object JUnitXmlTestsListenerSpec extends BasicTestSuite: test("JUnitXmlTestsListener should log debug message when writing test report"): - val tempDir = File.createTempFile("junit-test", "") - tempDir.delete() - tempDir.mkdirs() - try + IO.withTemporaryDirectory: tempDir => val loggedMessages = new AtomicReference[List[String]](Nil) val mockLogger = new AbstractLogger: def getLevel: Level.Value = Level.Debug @@ -66,17 +64,9 @@ object JUnitXmlTestsListenerSpec extends BasicTestSuite: messages.exists(_.contains("TEST-TestSuite.xml")), s"Expected log message containing 'TEST-TestSuite.xml', but got: $messages" ) - finally - // Cleanup - if tempDir.exists() then - tempDir.listFiles().foreach(_.delete()) - tempDir.delete() test("JUnitXmlTestsListener should handle null logger gracefully"): - val tempDir = File.createTempFile("junit-test", "") - tempDir.delete() - tempDir.mkdirs() - try + IO.withTemporaryDirectory: tempDir => val listener = new JUnitXmlTestsListener(tempDir, false, null) listener.doInit() listener.startGroup("TestSuite") @@ -97,9 +87,5 @@ object JUnitXmlTestsListenerSpec extends BasicTestSuite: // Verify XML file was still created val xmlFile = new File(tempDir, "TEST-TestSuite.xml") assert(xmlFile.exists(), "XML file should be created even when logger is null") - finally - if tempDir.exists() then - tempDir.listFiles().foreach(_.delete()) - tempDir.delete() end JUnitXmlTestsListenerSpec