diff --git a/src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/HelpersTests.cs b/src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/HelpersTests.cs
index 86c53ddee40..af88f34435f 100644
--- a/src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/HelpersTests.cs
+++ b/src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/HelpersTests.cs
@@ -43,6 +43,14 @@ public void VerifyNonEncodedFowardSlashIsConverted()
public void FailOnceThenPass()
{
var target = Path.Combine(Path.GetTempPath(), "my-test-file-123456.snt");
+
+ // If we're inside a Helix Docker work item, GetTempPath() is cleaned every execution,
+ // but the work item's own directory is not (and is writeable from inside Docker), so use it.
+ if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("HELIX_DOCKER_ENTRYPOINT")))
+ {
+ target = Path.Combine(Environment.GetEnvironmentVariable("HELIX_WORKITEM_PAYLOAD"), "my-test-file-123456.snt");
+ }
+
bool exists = File.Exists(target);
if (!exists)
{
diff --git a/tests/UnitTests.proj b/tests/UnitTests.proj
index e1f2e16a924..b200bcfd4a6 100644
--- a/tests/UnitTests.proj
+++ b/tests/UnitTests.proj
@@ -61,6 +61,7 @@
+
@@ -73,6 +74,7 @@
+