diff --git a/src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj b/src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
index b61fb365a..7f4ab9fd3 100644
--- a/src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
+++ b/src/Refitter.SourceGenerator.Tests/Refitter.SourceGenerator.Tests.csproj
@@ -14,7 +14,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/src/Refitter.Tests/Build/BuildHelper.cs b/src/Refitter.Tests/Build/BuildHelper.cs
index 915656804..ea9eb354c 100644
--- a/src/Refitter.Tests/Build/BuildHelper.cs
+++ b/src/Refitter.Tests/Build/BuildHelper.cs
@@ -7,7 +7,8 @@ public static class BuildHelper
{
public static bool BuildCSharp(params string[] generatedCode)
{
- var path = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString("N"));
+ var folder = Path.GetDirectoryName(typeof(BuildHelper).Assembly.Location) ?? Path.GetTempPath();
+ var path = Path.Combine(folder, Guid.NewGuid().ToString("N"));
Directory.CreateDirectory(path);
var projectFile = Path.Combine(path, "Project.csproj");
File.WriteAllText(projectFile, ProjectFileContents.Net80App);
@@ -38,9 +39,19 @@ public static bool BuildCSharp(params string[] generatedCode)
process.WaitForExit();
var result = startResult && process.ExitCode == 0;
+
if (!result)
throw new BuildFailedException(errors.ToString(), output.ToString());
+ try
+ {
+ Directory.Delete(path, true);
+ }
+ catch
+ {
+ // Ignore cleanup errors
+ }
+
return result;
}
diff --git a/src/Refitter.Tests/Build/ProjectFileContents.cs b/src/Refitter.Tests/Build/ProjectFileContents.cs
index 93401a056..4cc87d72d 100644
--- a/src/Refitter.Tests/Build/ProjectFileContents.cs
+++ b/src/Refitter.Tests/Build/ProjectFileContents.cs
@@ -9,6 +9,7 @@ public static class ProjectFileContents
true
+
diff --git a/src/Refitter.Tests/Refitter.Tests.csproj b/src/Refitter.Tests/Refitter.Tests.csproj
index 5a37c4c22..f3600bda0 100644
--- a/src/Refitter.Tests/Refitter.Tests.csproj
+++ b/src/Refitter.Tests/Refitter.Tests.csproj
@@ -23,7 +23,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/src/Refitter.Tests/SwaggerPetstoreTests.cs b/src/Refitter.Tests/SwaggerPetstoreTests.cs
index 0d29bff6c..003adc0ae 100644
--- a/src/Refitter.Tests/SwaggerPetstoreTests.cs
+++ b/src/Refitter.Tests/SwaggerPetstoreTests.cs
@@ -584,6 +584,11 @@ public async Task Can_Build_Generated_Code_With_IApiResponse(SampleOpenSpecifica
[Test]
[Arguments(SampleOpenSpecifications.SwaggerPetstoreJsonV3, "SwaggerPetstore.json")]
+#if !DEBUG
+ [Arguments(SampleOpenSpecifications.SwaggerPetstoreYamlV3, "SwaggerPetstore.yaml")]
+ [Arguments(SampleOpenSpecifications.SwaggerPetstoreJsonV2, "SwaggerPetstore.json")]
+ [Arguments(SampleOpenSpecifications.SwaggerPetstoreYamlV2, "SwaggerPetstore.yaml")]
+#endif
public async Task Can_Build_Generated_Code_With_IObservableResponse(SampleOpenSpecifications version, string filename)
{
var settings = new RefitGeneratorSettings();
diff --git a/src/Refitter.Tests/WriteRefitterSettingsFileTests.cs b/src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
index 4dc7ddcac..f529d658c 100644
--- a/src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
+++ b/src/Refitter.Tests/WriteRefitterSettingsFileTests.cs
@@ -113,7 +113,8 @@ public void DetermineSettingsFilePath_Returns_Default_When_Output_Path_Is_Null()
public async Task WriteRefitterSettingsFile_Creates_File_With_Default_Path()
{
// Arrange
- var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
+ var folder = Path.GetDirectoryName(GetType().Assembly.Location) ?? Path.GetTempPath();
+ var tempDir = Path.Combine(folder, Guid.NewGuid().ToString());
Directory.CreateDirectory(tempDir);
var originalDir = Directory.GetCurrentDirectory();
@@ -268,7 +269,7 @@ public async Task WriteRefitterSettingsFile_Creates_File_When_ContractsOutputPat
var content = await File.ReadAllTextAsync(settingsFile);
content.Should().Contain("ContractsNamespace");
-
+
// Verify the deserialized settings contain the correct contracts path
var deserializedSettings = Serializer.Deserialize(content);
deserializedSettings.ContractsOutputFolder.Should().Be(contractsDir);