diff --git a/src/NUnitTestAdapter/AdapterSettings.cs b/src/NUnitTestAdapter/AdapterSettings.cs
index f065ebb6..6162d69c 100644
--- a/src/NUnitTestAdapter/AdapterSettings.cs
+++ b/src/NUnitTestAdapter/AdapterSettings.cs
@@ -150,6 +150,7 @@ public class AdapterSettings(ITestLogger logger) : IAdapterSettings
     public bool UseNUnitIdforTestCaseId { get; private set; }  // default is false.
     public int ConsoleOut { get; private set; }
     public bool StopOnError { get; private set; }
+    public bool ThrowOnEachFailureUnderDebugger { get; private set; }
 
     public DiscoveryMethod DiscoveryMethod { get; private set; } = DiscoveryMethod.Current;
     public bool SkipNonTestAssemblies { get; private set; }
@@ -257,6 +258,7 @@ public void Load(string settingsXml)
         IncludeStackTraceForSuites = GetInnerTextAsBool(nunitNode, nameof(IncludeStackTraceForSuites), true);
         EnsureAttachmentFileScheme = GetInnerTextAsBool(nunitNode, nameof(EnsureAttachmentFileScheme), false);
         SkipExecutionWhenNoTests = GetInnerTextAsBool(nunitNode, nameof(SkipExecutionWhenNoTests), false);
+        ThrowOnEachFailureUnderDebugger = GetInnerTextAsBool(nunitNode, nameof(ThrowOnEachFailureUnderDebugger), false);
 
         // Engine settings
         DiscoveryMethod = MapEnum(GetInnerText(nunitNode, nameof(DiscoveryMethod), Verbosity > 0), DiscoveryMethod.Current);
diff --git a/src/NUnitTestAdapter/IAdapterSettings.cs b/src/NUnitTestAdapter/IAdapterSettings.cs
index da7b04e7..d44f48ff 100644
--- a/src/NUnitTestAdapter/IAdapterSettings.cs
+++ b/src/NUnitTestAdapter/IAdapterSettings.cs
@@ -91,6 +91,7 @@ public interface IAdapterSettings
     char FullnameSeparator { get; }
     DiscoveryMethod DiscoveryMethod { get; }
     bool SkipNonTestAssemblies { get; }
+    bool ThrowOnEachFailureUnderDebugger { get; }
 
     int AssemblySelectLimit { get; }
 
diff --git a/src/NUnitTestAdapter/NUnitTestAdapter.cs b/src/NUnitTestAdapter/NUnitTestAdapter.cs
index 14666e7a..4cf8309b 100644
--- a/src/NUnitTestAdapter/NUnitTestAdapter.cs
+++ b/src/NUnitTestAdapter/NUnitTestAdapter.cs
@@ -250,6 +250,9 @@ protected TestPackage CreateTestPackage(string assemblyName, IGrouping<string, T
         if (Settings.SkipNonTestAssemblies)
             package.Settings[PackageSettings.SkipNonTestAssemblies] = true;
 
+        if (Settings.ThrowOnEachFailureUnderDebugger)
+            package.Settings[PackageSettings.ThrowOnEachFailureUnderDebugger] = true;
+
         // Always run one assembly at a time in process in its own domain
         package.Settings[PackageSettings.ProcessModel] = "InProcess";
 
diff --git a/src/NUnitTestAdapter/PackageSettings.cs b/src/NUnitTestAdapter/PackageSettings.cs
index b9455433..17dfaad8 100644
--- a/src/NUnitTestAdapter/PackageSettings.cs
+++ b/src/NUnitTestAdapter/PackageSettings.cs
@@ -191,6 +191,11 @@ public static class PackageSettings
     /// </summary>
     public const string StopOnError = "StopOnError";
 
+    /// <summary>
+    /// If true, asserts in multiple asserts block will throw first-chance exception on failure.
+    /// </summary>
+    public const string ThrowOnEachFailureUnderDebugger = "ThrowOnEachFailureUnderDebugger";
+
     /// <summary>
     /// If true, use of the event queue is suppressed and test events are synchronous.
     /// </summary>