diff --git a/.editorconfig b/.editorconfig
index b4b1b01dc6..99e4225d24 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -343,7 +343,7 @@ dotnet_diagnostic.IDE0270.severity = warning
dotnet_diagnostic.IDE0280.severity = warning
# IDE0370: Remove unnecessary suppression
-dotnet_diagnostic.IDE0370.severity = warning
+dotnet_diagnostic.IDE0370.severity = none
# IDE1005: Use conditional delegate call
dotnet_diagnostic.IDE1005.severity = warning
diff --git a/NuGet.config b/NuGet.config
index 4063f3efed..96df359ba1 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -17,6 +17,7 @@
+
@@ -47,5 +48,8 @@
+
+
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 37ecf7c532..a30fe2b30b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,21 +1,21 @@
-
+
https://github.com/dotnet/arcade
- 47a8a69721dfea57b82121ac1458d2f5bba6abd2
+ 594f3bcba9361908a75c769c1d2d5668facc0dea
-
+
https://github.com/dotnet/arcade
- 47a8a69721dfea57b82121ac1458d2f5bba6abd2
+ 594f3bcba9361908a75c769c1d2d5668facc0dea
-
+
https://github.com/dotnet/arcade
- 47a8a69721dfea57b82121ac1458d2f5bba6abd2
+ 594f3bcba9361908a75c769c1d2d5668facc0dea
-
+
https://dev.azure.com/devdiv/DevDiv/_git/vs-code-coverage
- d6fad4ec212e65323a99f3367bc90ee840fac267
+ 74ce4948abff2b900d035bf7fd3a09f4b76f4e62
https://github.com/microsoft/testfx
diff --git a/eng/Versions.props b/eng/Versions.props
index 8117d1ea8f..bc353a382e 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -7,8 +7,8 @@
preview
- 11.0.0-beta.25617.1
- 18.3.0-preview.25615.2
+ 11.0.0-beta.26062.1
+ 18.4.0-preview.26062.2
4.1.0-preview.26063.3
2.1.0-preview.26063.3
diff --git a/eng/common/core-templates/steps/install-microbuild-impl.yml b/eng/common/core-templates/steps/install-microbuild-impl.yml
index b9e0143ee9..da22beb3f6 100644
--- a/eng/common/core-templates/steps/install-microbuild-impl.yml
+++ b/eng/common/core-templates/steps/install-microbuild-impl.yml
@@ -18,7 +18,7 @@ parameters:
type: boolean
steps:
-- ${{ if eq(parameters.enablePreviewMicrobuild, 'true') }}:
+- ${{ if eq(parameters.enablePreviewMicrobuild, true) }}:
- task: MicroBuildSigningPluginPreview@4
displayName: Install Preview MicroBuild plugin
inputs: ${{ parameters.microbuildTaskInputs }}
diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml
index ac019e2d03..3ad83b8c30 100644
--- a/eng/common/core-templates/steps/source-index-stage1-publish.yml
+++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml
@@ -14,8 +14,8 @@ steps:
workingDirectory: $(Agent.TempDirectory)
- script: |
- $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
- $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --source ${{parameters.SourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
+ $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version ${{parameters.sourceIndexProcessBinlogPackageVersion}} --source ${{parameters.sourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
+ $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version ${{parameters.sourceIndexUploadPackageVersion}} --source ${{parameters.sourceIndexPackageSource}} --tool-path $(Agent.TempDirectory)/.source-index/tools
displayName: "Source Index: Download netsourceindex Tools"
# Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
workingDirectory: $(Agent.TempDirectory)
diff --git a/eng/common/native/install-dependencies.sh b/eng/common/native/install-dependencies.sh
index 64b87d0bcc..11f81cbd40 100644
--- a/eng/common/native/install-dependencies.sh
+++ b/eng/common/native/install-dependencies.sh
@@ -27,7 +27,7 @@ case "$os" in
libssl-dev libkrb5-dev pigz cpio
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
- elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ] || [ "$ID" = "centos"]; then
+ elif [ "$ID" = "fedora" ] || [ "$ID" = "rhel" ] || [ "$ID" = "azurelinux" ] || [ "$ID" = "centos" ]; then
pkg_mgr="$(command -v tdnf 2>/dev/null || command -v dnf)"
$pkg_mgr install -y cmake llvm lld lldb clang python curl libicu-devel openssl-devel krb5-devel lttng-ust-devel pigz cpio
elif [ "$ID" = "amzn" ]; then
diff --git a/global.json b/global.json
index 2135b5a10e..c63e0c41d6 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "10.0.102",
+ "dotnet": "11.0.100-alpha.1.26062.101",
"runtimes": {
"dotnet": [
"8.0.18",
@@ -24,7 +24,7 @@
}
},
"sdk": {
- "version": "10.0.102",
+ "version": "11.0.100-alpha.1.26062.101",
"paths": [
".dotnet",
"$host$"
@@ -37,7 +37,7 @@
"runner": "Microsoft.Testing.Platform"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25617.1",
+ "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26062.1",
"MSBuild.Sdk.Extras": "3.0.44"
}
}
diff --git a/src/Adapter/MSTest.Engine/Engine/TestArgumentsManager.cs b/src/Adapter/MSTest.Engine/Engine/TestArgumentsManager.cs
index 604983472b..01ce2baed0 100644
--- a/src/Adapter/MSTest.Engine/Engine/TestArgumentsManager.cs
+++ b/src/Adapter/MSTest.Engine/Engine/TestArgumentsManager.cs
@@ -110,7 +110,7 @@ static void ExpandNodeWithArguments(TestNode testNode, object arguments, ref int
if (arguments is not ITestArgumentsEntry testArgumentsEntry)
{
shouldWrapInParenthesis = !isIndexArgumentPropertiesProvider;
- testArgumentsEntry = argumentPropertiesProvider(new(arguments, testNode))!;
+ testArgumentsEntry = argumentPropertiesProvider(new(arguments, testNode));
}
string argumentFragmentUid = GetArgumentFragmentUid(testArgumentsEntry, shouldWrapInParenthesis);
diff --git a/src/Adapter/MSTestAdapter.PlatformServices/Utilities/AssemblyUtility.cs b/src/Adapter/MSTestAdapter.PlatformServices/Utilities/AssemblyUtility.cs
index 18ddbf8cd5..ccd9f1c586 100644
--- a/src/Adapter/MSTestAdapter.PlatformServices/Utilities/AssemblyUtility.cs
+++ b/src/Adapter/MSTestAdapter.PlatformServices/Utilities/AssemblyUtility.cs
@@ -143,7 +143,7 @@ internal virtual List GetSatelliteAssemblies(string assemblyPath)
{
// extension contains leading dot.
string satellite = Path.ChangeExtension(assemblyFileName, "resources" + extension);
- string satellitePath = Path.Combine(assemblyDir, Path.Combine(dir, satellite));
+ string satellitePath = Path.Combine(assemblyDir, dir, satellite);
// We don't use Assembly.LoadFrom/Assembly.GetSatelliteAssemblies because this is rather slow
// (1620ms for 266 cultures when directories do not exist).
diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/UseExecuteAsyncOverrideFixer.cs b/src/Analyzers/MSTest.Analyzers.CodeFixes/UseExecuteAsyncOverrideFixer.cs
index 846ec98fb3..3fc9624280 100644
--- a/src/Analyzers/MSTest.Analyzers.CodeFixes/UseExecuteAsyncOverrideFixer.cs
+++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/UseExecuteAsyncOverrideFixer.cs
@@ -127,7 +127,7 @@ private static BlockSyntax TransformMethodBody(BlockSyntax body)
{
// Transform all return statements to return Task.FromResult(...)
var transformer = new ReturnStatementTransformer();
- return (BlockSyntax)transformer.Visit(body)!;
+ return (BlockSyntax)transformer.Visit(body);
}
private static ArrowExpressionClauseSyntax TransformExpressionBody(ArrowExpressionClauseSyntax expressionBody)
diff --git a/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/DiagnosticExtensions.cs b/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/DiagnosticExtensions.cs
index dbed1d2ae6..c62e890828 100644
--- a/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/DiagnosticExtensions.cs
+++ b/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/DiagnosticExtensions.cs
@@ -214,7 +214,7 @@ public static void ReportNoLocationDiagnostic(
else
{
RoslynDebug.Assert(s_syntaxTreeDiagnosticOptionsProperty != null);
- var options = (ImmutableDictionary)s_syntaxTreeDiagnosticOptionsProperty.GetValue(tree)!;
+ var options = (ImmutableDictionary)s_syntaxTreeDiagnosticOptionsProperty.GetValue(tree);
if (options.TryGetValue(rule.Id, out ReportDiagnostic value))
{
configuredValue = value;
diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/OpenAIChatClientProvider.cs b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/OpenAIChatClientProvider.cs
index b1984c7328..eb69ae21cd 100644
--- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/OpenAIChatClientProvider.cs
+++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/OpenAIChatClientProvider.cs
@@ -62,8 +62,8 @@ public Task CreateChatClientAsync(CancellationToken cancellationTok
}
var client = new AzureOpenAIClient(
- new Uri(endpoint!),
- new ApiKeyCredential(apiKey!));
+ new Uri(endpoint),
+ new ApiKeyCredential(apiKey));
return Task.FromResult(client.GetChatClient(deploymentName).AsIChatClient());
}
diff --git a/src/Platform/Microsoft.Testing.Extensions.HotReload/HotReloadHandler.cs b/src/Platform/Microsoft.Testing.Extensions.HotReload/HotReloadHandler.cs
index 97723c4681..596ba62bcc 100644
--- a/src/Platform/Microsoft.Testing.Extensions.HotReload/HotReloadHandler.cs
+++ b/src/Platform/Microsoft.Testing.Extensions.HotReload/HotReloadHandler.cs
@@ -86,7 +86,7 @@ public async Task ShouldRunAsync(Task? waitExecutionCompletion, Cancellati
if (waitExecutionCompletion is not null)
{
await waitExecutionCompletion.ConfigureAwait(false);
- await _outputDevice!.DisplayAsync(_outputDeviceDataProducer, new TextOutputDeviceData(ExtensionResources.HotReloadSessionCompleted), cancellationToken).ConfigureAwait(false);
+ await _outputDevice.DisplayAsync(_outputDeviceDataProducer, new TextOutputDeviceData(ExtensionResources.HotReloadSessionCompleted), cancellationToken).ConfigureAwait(false);
}
try
@@ -100,7 +100,7 @@ public async Task ShouldRunAsync(Task? waitExecutionCompletion, Cancellati
if (!IsClearNotSupported())
{
- _console!.Clear();
+ _console.Clear();
}
await _outputDevice.DisplayAsync(_outputDeviceDataProducer, new TextOutputDeviceData(ExtensionResources.HotReloadSessionStarted), cancellationToken).ConfigureAwait(false);
diff --git a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/OpenTelemetryPlatformService.cs b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/OpenTelemetryPlatformService.cs
index 6d84e8ceb8..11fe1b04ca 100644
--- a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/OpenTelemetryPlatformService.cs
+++ b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/OpenTelemetryPlatformService.cs
@@ -24,7 +24,7 @@ internal sealed class OpenTelemetryPlatformService : IPlatformOpenTelemetryServi
public ICounter CreateCounter(string name, string? unit = null, string? description = null, IEnumerable>? tags = null)
where T : struct
- => new CounterWrapper(_meter.CreateCounter(name, unit, description, tags!));
+ => new CounterWrapper(_meter.CreateCounter(name, unit, description, tags));
public IHistogram CreateHistogram(string name, string? unit = null, string? description = null, IEnumerable>? tags = null)
where T : struct
diff --git a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/FastFilter.cs b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/FastFilter.cs
index 23b573df00..f7abeb7241 100644
--- a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/FastFilter.cs
+++ b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/FastFilter.cs
@@ -83,7 +83,7 @@ internal bool Evaluate(Func propertyValueProvider)
string? result = null;
if (PropertyValueRegexReplacement == null)
{
- Match match = PropertyValueRegex!.Match(value);
+ Match match = PropertyValueRegex.Match(value);
if (match.Success)
{
result = match.Value;
@@ -91,7 +91,7 @@ internal bool Evaluate(Func propertyValueProvider)
}
else
{
- result = PropertyValueRegex!.Replace(value, PropertyValueRegexReplacement);
+ result = PropertyValueRegex.Replace(value, PropertyValueRegexReplacement);
}
return result;
diff --git a/src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/InvokeTestingPlatformTask.cs b/src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/InvokeTestingPlatformTask.cs
index 5e0a563d39..57d47272d4 100644
--- a/src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/InvokeTestingPlatformTask.cs
+++ b/src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/InvokeTestingPlatformTask.cs
@@ -292,9 +292,9 @@ protected override string GenerateCommandLineCommands()
// If we are not "dotnet.exe" and not "mono", then we are given an executable from user and we are running on Windows.
builder.AppendSwitchIfNotNull($"--{MSBuildConstants.MSBuildNodeOptionKey} ", _pipeNameDescription.Name);
- if (!string.IsNullOrEmpty(TestingPlatformCommandLineArguments?.ItemSpec))
+ if (!RoslynString.IsNullOrEmpty(TestingPlatformCommandLineArguments?.ItemSpec))
{
- builder.AppendTextUnquoted($" {TestingPlatformCommandLineArguments!.ItemSpec} ");
+ builder.AppendTextUnquoted($" {TestingPlatformCommandLineArguments.ItemSpec} ");
}
if (VSTestCLIRunSettings?.Length > 0)
diff --git a/src/Platform/Microsoft.Testing.Platform/Messages/PropertyBag.cs b/src/Platform/Microsoft.Testing.Platform/Messages/PropertyBag.cs
index 9526ea0d4b..7a11f8dbbe 100644
--- a/src/Platform/Microsoft.Testing.Platform/Messages/PropertyBag.cs
+++ b/src/Platform/Microsoft.Testing.Platform/Messages/PropertyBag.cs
@@ -203,7 +203,7 @@ public bool Any()
return default;
}
- TProperty property = enumerator.Current!;
+ TProperty property = enumerator.Current;
return enumerator.MoveNext()
? throw new InvalidOperationException($"Found multiple properties of type '{typeof(TProperty)}'.")
: property;
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TestProgressState.cs b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TestProgressState.cs
index 489654cc0e..c792c8beee 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TestProgressState.cs
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TestProgressState.cs
@@ -14,7 +14,7 @@ public TestProgressState(long id, string assembly, string? targetFramework, stri
TargetFramework = targetFramework;
Architecture = architecture;
Stopwatch = stopwatch;
- AssemblyName = Path.GetFileName(assembly)!;
+ AssemblyName = Path.GetFileName(assembly);
IsDiscovery = isDiscovery;
}
diff --git a/src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/PassiveNode.cs b/src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/PassiveNode.cs
index 931755233f..ea6237ce3f 100644
--- a/src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/PassiveNode.cs
+++ b/src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/PassiveNode.cs
@@ -56,7 +56,7 @@ public async Task ConnectAsync()
// Log the message
if (_logger.IsEnabled(LogLevel.Trace))
{
- await _logger.LogTraceAsync(message!.ToString()).ConfigureAwait(false);
+ await _logger.LogTraceAsync(message.ToString()).ConfigureAwait(false);
}
var requestMessage = (RequestMessage)message;
diff --git a/src/TestFramework/TestFramework/Assertions/Assert.IsExactInstanceOfType.cs b/src/TestFramework/TestFramework/Assertions/Assert.IsExactInstanceOfType.cs
index 3704b5072d..144f17cdbe 100644
--- a/src/TestFramework/TestFramework/Assertions/Assert.IsExactInstanceOfType.cs
+++ b/src/TestFramework/TestFramework/Assertions/Assert.IsExactInstanceOfType.cs
@@ -311,7 +311,7 @@ public static void IsExactInstanceOfType([NotNull] object? value, [NotNull] Type
public static T IsExactInstanceOfType([NotNull] object? value, string? message = "", [CallerArgumentExpression(nameof(value))] string valueExpression = "")
{
IsExactInstanceOfType(value, typeof(T), message, valueExpression);
- return (T)value!;
+ return (T)value;
}
///
diff --git a/src/TestFramework/TestFramework/Assertions/Assert.That.cs b/src/TestFramework/TestFramework/Assertions/Assert.That.cs
index 99d1e3a882..e13c803967 100644
--- a/src/TestFramework/TestFramework/Assertions/Assert.That.cs
+++ b/src/TestFramework/TestFramework/Assertions/Assert.That.cs
@@ -56,7 +56,9 @@ public static void That(Expression> condition, string? message = null
}
}
+#pragma warning disable IDE0051 // Remove unused private members - false positive
private static string ExtractDetails(Expression expr)
+#pragma warning restore IDE0051 // Remove unused private members
{
var details = new Dictionary();
ExtractVariablesFromExpression(expr, details);
@@ -691,7 +693,7 @@ private static string CleanExcessiveParentheses(string input)
// Keep at most 2 consecutive parentheses
int keepCount = Math.Min(count, 2);
- result.Append(new string(currentChar, keepCount));
+ result.Append(currentChar, keepCount);
i += count;
}
else
diff --git a/src/TestFramework/TestFramework/Attributes/DataSource/DynamicDataOperations.cs b/src/TestFramework/TestFramework/Attributes/DataSource/DynamicDataOperations.cs
index b3990377c7..4ce72a026f 100644
--- a/src/TestFramework/TestFramework/Attributes/DataSource/DynamicDataOperations.cs
+++ b/src/TestFramework/TestFramework/Attributes/DataSource/DynamicDataOperations.cs
@@ -155,7 +155,7 @@ private static bool TryGetData(object dataSource, [NotNullWhen(true)] out IEnume
List