diff --git a/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestoreSettingsTests.cs b/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestoreSettingsTests.cs
index 0fd3bd2517..a5b817cc56 100644
--- a/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestoreSettingsTests.cs
+++ b/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestoreSettingsTests.cs
@@ -30,6 +30,16 @@ public void Should_Set_RequireConsent_To_False_By_Default()
// Then
Assert.False(settings.RequireConsent);
}
+
+ [Fact]
+ public void Should_Set_NonInteractive_To_True_By_Default()
+ {
+ // Given, When
+ var settings = new NuGetRestoreSettings();
+
+ // Then
+ Assert.True(settings.NonInteractive);
+ }
}
}
}
\ No newline at end of file
diff --git a/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestorerTests.cs b/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestorerTests.cs
index adcc87fb58..fcf0d1eb8d 100644
--- a/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestorerTests.cs
+++ b/src/Cake.Common.Tests/Unit/Tools/NuGet/Restore/NuGetRestorerTests.cs
@@ -219,6 +219,20 @@ public void Should_Add_DisableParallelProcessing_To_Arguments_If_Set()
"-NonInteractive", result.Args);
}
+ [Fact]
+ public void Should_Remove_NonInteractive_From_Arguments_If_False()
+ {
+ // Given
+ var fixture = new NuGetRestorerFixture();
+ fixture.Settings.NonInteractive = false;
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ Assert.Equal("restore \"/Working/project.sln\"", result.Args);
+ }
+
[Theory]
[InlineData(NuGetVerbosity.Detailed, "restore \"/Working/project.sln\" -Verbosity detailed -NonInteractive")]
[InlineData(NuGetVerbosity.Normal, "restore \"/Working/project.sln\" -Verbosity normal -NonInteractive")]
diff --git a/src/Cake.Common/Tools/NuGet/Restore/NuGetRestorer.cs b/src/Cake.Common/Tools/NuGet/Restore/NuGetRestorer.cs
index ec6710d88b..80481d56d8 100644
--- a/src/Cake.Common/Tools/NuGet/Restore/NuGetRestorer.cs
+++ b/src/Cake.Common/Tools/NuGet/Restore/NuGetRestorer.cs
@@ -121,7 +121,11 @@ private ProcessArgumentBuilder GetArguments(FilePath targetFilePath, NuGetRestor
builder.Append(settings.MSBuildVersion.Value.GetNuGetMSBuildVersionString());
}
- builder.Append("-NonInteractive");
+ // NonInteractive?
+ if (settings.NonInteractive)
+ {
+ builder.Append("-NonInteractive");
+ }
return builder;
}
diff --git a/src/Cake.Common/Tools/NuGet/Restore/NugetRestoreSettings.cs b/src/Cake.Common/Tools/NuGet/Restore/NugetRestoreSettings.cs
index 32e7928d24..8c1ab24b77 100644
--- a/src/Cake.Common/Tools/NuGet/Restore/NugetRestoreSettings.cs
+++ b/src/Cake.Common/Tools/NuGet/Restore/NugetRestoreSettings.cs
@@ -72,5 +72,16 @@ public sealed class NuGetRestoreSettings : ToolSettings
///
/// The version of MSBuild to be used with this command.
public NuGetMSBuildVersion? MSBuildVersion { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether or not NuGet suppresses prompts for user input or confirmations.
+ ///
+ ///
+ /// This setting is passed by NuGet.exe to any extensions such as authorization providers
+ ///
+ ///
+ /// false to allow NuGet to show prompts for user input or confirmations; otherwise, true.
+ ///
+ public bool NonInteractive { get; set; } = true;
}
}
\ No newline at end of file