diff --git a/.azure-pipelines/Azure-PowerShell-Common-Publish.yml b/.azure-pipelines/Azure-PowerShell-Common-Publish.yml deleted file mode 100644 index c61a21c27e..0000000000 --- a/.azure-pipelines/Azure-PowerShell-Common-Publish.yml +++ /dev/null @@ -1,131 +0,0 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- main - -pool: - vmImage: 'windows-2019' - -variables: -- group: GitHub Release Variables - -steps: -- powershell: | - # Write your PowerShell commands here. - if (-not ($env:VERSION -match "\d+\.\d+\.\d+")) - { - throw "The value of Version $env:VERSION must be format of X.X.X" - } - displayName: 'Check Version' - -- task: UseDotNet@2 - displayName: 'Install .NET SDK' - inputs: - packageType: 'sdk' - version: '3.x' - -- powershell: '$(Agent.ToolsDirectory)/dotnet/dotnet msbuild build.proj /t:Build /p:Configuration=Release /p:FileVersion=$env:VERSION /NoLogo' - displayName: build common libs - -- powershell: '$(Agent.ToolsDirectory)/dotnet/dotnet build tools/AutoMapper/AutoMapper.csproj -c Release' - displayName: build AutoMapper - -- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - displayName: 'dll Signing' - inputs: - ConnectedServiceName: 'ESRP Signing Service' - FolderPath: . - Pattern: | - artifacts\Release\netstandard2.0\Microsoft.Azure.PowerShell*.dll - tools\AutoMapper\bin\Release\netstandard2.0\Microsoft.Azure.PowerShell*.dll - !artifacts\Release\netstandard2.0\Microsoft.Azure.PowerShell*.Test.dll - UseMinimatch: true - signConfigType: inlineSignParams - inlineOperation: | - [ - { - "KeyCode": "CP-233863-SN", - "OperationCode": "StrongNameSign", - "Parameters": {}, - "ToolName": "sign", - "ToolVersion": "1.0" - }, - { - "KeyCode": "CP-233863-SN", - "OperationCode": "StrongNameVerify", - "Parameters": {}, - "ToolName": "sign", - "ToolVersion": "1.0" - }, - { - "KeyCode": "CP-230012", - "OperationCode": "SigntoolSign", - "Parameters": { - "OpusName": "Microsoft", - "OpusInfo": "http://www.microsoft.com", - "FileDigest": "/fd \"SHA256\"", - "PageHash": "/NPH", - "TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256" - }, - "ToolName": "sign", - "ToolVersion": "1.0" - }, - { - "KeyCode": "CP-230012", - "OperationCode": "SigntoolVerify", - "Parameters": {}, - "ToolName": "sign", - "ToolVersion": "1.0" - } - ] - -- task: PowerShell@2 - inputs: - targetType: 'inline' - script: | - $(Agent.ToolsDirectory)/dotnet/dotnet msbuild build.proj /t:Pack /p:Configuration=Release /p:PackageVersion=$env:VERSION /NoLogo - $(Agent.ToolsDirectory)/dotnet/dotnet pack tools/AutoMapper/AutoMapper.csproj -c Release --no-build - displayName: pack - -- task: NuGetAuthenticate@0 - displayName: 'NuGet Authenticate' - condition: and(succeeded(), ne(variables['publish'], 'false')) - -- task: NuGetCommand@2 - displayName: 'NuGet push' - condition: and(succeeded(), ne(variables['publish'], 'false')) - inputs: - command: push - packagesToPush: 'artifacts/Package/Release/Microsoft.Azure.PowerShell.*.nupkg;!artifacts/Package/Release/Microsoft.Azure.PowerShell.*.symbols.nupkg;' # .nupkg and .snupkg - publishVstsFeed: public/azure-powershell - includeSymbols: false - -- powershell: | - dotnet msbuild build\publish.proj /p:Configuration=Release /p:ReleaseVersion=$env:VERSION /p:CommitId=$env:Build_SourceVersion /p:GitHubAccessToken=$(Github-azuresdkci-personalaccesstoken) /NoLogo - displayName: 'publish package github' - condition: and(succeeded(), ne(variables['publish'], 'false')) - -- task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: artifacts/Package/Release/ - ArtifactName: artifacts - condition: succeededOrFailed() - -- task: PublishBuildArtifacts@1 - displayName: 'Publish Artifact' - inputs: - PathtoPublish: tools/AutoMapper/bin/Release - ArtifactName: AutoMapper - condition: succeededOrFailed() - -- task: PublishBuildArtifacts@1 - displayName: 'Publish All Artifact For Debug' - inputs: - PathtoPublish: . - ArtifactName: all - condition: and(succeededOrFailed(), eq(variables['System.debug'], 'true')) - diff --git a/.azure-pipelines/ci.yml b/.azure-pipelines/ci.yml index e56db20f99..a264ce9d8c 100644 --- a/.azure-pipelines/ci.yml +++ b/.azure-pipelines/ci.yml @@ -6,9 +6,9 @@ pool: steps: - task: UseDotNet@2 - displayName: 'Use .Net Core sdk 2.1.302' + displayName: 'Pin .Net SDK 8.x' inputs: - version: 2.1.302 + version: 8.x - task: DotNetCoreCLI@2 displayName: 'Build Debug' diff --git a/.azure-pipelines/daily-build.yml b/.azure-pipelines/daily-build.yml index 383a46c3f2..5957f51c73 100644 --- a/.azure-pipelines/daily-build.yml +++ b/.azure-pipelines/daily-build.yml @@ -15,9 +15,9 @@ pool: steps: - task: UseDotNet@2 - displayName: 'Use .Net Core sdk 2.1.302' + displayName: 'Pin .Net SDK 8.x' inputs: - version: 2.1.302 + version: 8.x - task: DotNetCoreCLI@2 displayName: 'Build Debug' diff --git a/Azure.PowerShell.Common.sln b/Azure.PowerShell.Common.sln index 5a7ba546f5..ccdb1783ed 100644 --- a/Azure.PowerShell.Common.sln +++ b/Azure.PowerShell.Common.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31313.79 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35431.28 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "src\Common\Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject @@ -127,10 +127,6 @@ Global {29ECE00D-4FD5-4AFC-BEBF-136002E9CB9C}.Debug|Any CPU.Build.0 = Debug|Any CPU {29ECE00D-4FD5-4AFC-BEBF-136002E9CB9C}.Release|Any CPU.ActiveCfg = Release|Any CPU {29ECE00D-4FD5-4AFC-BEBF-136002E9CB9C}.Release|Any CPU.Build.0 = Release|Any CPU - {9E283CCA-7923-4062-A0A7-289C14324E43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9E283CCA-7923-4062-A0A7-289C14324E43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9E283CCA-7923-4062-A0A7-289C14324E43}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9E283CCA-7923-4062-A0A7-289C14324E43}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/build/pack.proj b/build/pack.proj index baf23cecb5..925316c438 100644 --- a/build/pack.proj +++ b/build/pack.proj @@ -13,7 +13,7 @@ - + diff --git a/src/Authentication.Abstractions.Test/Authentication.Abstractions.Test.csproj b/src/Authentication.Abstractions.Test/Authentication.Abstractions.Test.csproj index 9eeee917ca..4180492a67 100644 --- a/src/Authentication.Abstractions.Test/Authentication.Abstractions.Test.csproj +++ b/src/Authentication.Abstractions.Test/Authentication.Abstractions.Test.csproj @@ -1,9 +1,9 @@ - + - netcoreapp2.1 + net8.0 false diff --git a/src/Authentication.Abstractions.Test/AzureEnvironmentTests.cs b/src/Authentication.Abstractions.Test/AzureEnvironmentTests.cs index 0a58a14fd0..3d3dfb8df5 100644 --- a/src/Authentication.Abstractions.Test/AzureEnvironmentTests.cs +++ b/src/Authentication.Abstractions.Test/AzureEnvironmentTests.cs @@ -25,7 +25,7 @@ public class AzureEnvironmentTests [Fact] public void TestArmAndNonArmBasedCloudMetadataInit() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\GoodArmResponse.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/GoodArmResponse.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); // Check all discovered environments are loaded. @@ -39,7 +39,7 @@ public void TestArmAndNonArmBasedCloudMetadataInit() [Fact] public void TestArmCloudMetadata20190501Init() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\ArmResponse2019-05-01.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/ArmResponse2019-05-01.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); // Check all discovered environments are loaded. @@ -55,7 +55,7 @@ public void TestArmCloudMetadata20190501Init() [Fact] public void TestArmCloudMetadata20220901Init() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\ArmResponse2022-09-01.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/ArmResponse2022-09-01.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); // Check all discovered environments are loaded. @@ -80,7 +80,7 @@ public void TestArmCloudMetadata20220901Init() [Fact] public void TestArmResponseNoAzureCloud() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\ArmResponseNoAzureCloud.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/ArmResponseNoAzureCloud.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); // Check AzureCloud is added to public environment list even discovery endpoint doesn't return AzureCloud. @@ -93,7 +93,7 @@ public void TestArmResponseNoAzureCloud() [Fact] public void TestArmResponseOneEntry() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\ArmResponseOneEntry.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/ArmResponseOneEntry.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); Assert.Equal(4, armEnvironments.Count); @@ -133,7 +133,7 @@ public void TestDisableArmCloudMetadataInit() [Fact] public void TestArmResponseWithEmptyGalleryEndpoint() { - Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData\ArmResponseWithEmptyGallery.json"); + Environment.SetEnvironmentVariable(ArmMetadataEnvVariable, @"TestData/ArmResponseWithEmptyGallery.json"); var armEnvironments = AzureEnvironment.InitializeBuiltInEnvironments(null, httpOperations: TestOperationsFactory.Create().GetHttpOperations()); Assert.Equal(3, armEnvironments.Count); diff --git a/src/Authentication.Abstractions/AzureSession.cs b/src/Authentication.Abstractions/AzureSession.cs index 07b132288d..6989200a37 100644 --- a/src/Authentication.Abstractions/AzureSession.cs +++ b/src/Authentication.Abstractions/AzureSession.cs @@ -30,7 +30,8 @@ public abstract class AzureSession : IAzureSession static IAzureSession _instance; static bool _initialized = false; static ReaderWriterLockSlim sessionLock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion); - private IDictionary _componentRegistry = new ConcurrentDictionary(new ComponentKeyComparer()); + // explicit typing for the thread-safe API calls to avoid the need for explicit casting + private ConcurrentDictionary _componentRegistry = new ConcurrentDictionary(new ComponentKeyComparer()); private event EventHandler _eventHandler; /// @@ -89,7 +90,7 @@ public abstract class AzureSession : IAzureSession public string OldProfileFile { get; set; } /// - /// The directory contianing the ARM ContextContainer + /// The directory containing the ARM ContextContainer /// public string ARMProfileDirectory { get; set; } @@ -214,13 +215,16 @@ public static void Modify(Action modifier) public bool TryGetComponent(string componentName, out T component) where T : class { var key = new ComponentKey(componentName, typeof(T)); - component = null; - if (_componentRegistry.ContainsKey(key)) + if (_componentRegistry.TryGetValue(key, out var componentObj) && componentObj is T componentT) { - component = _componentRegistry[key] as T; + component = componentT; + return true; + } + else + { + component = null; + return false; } - - return component != null; } public void RegisterComponent(string componentName, Func componentInitializer) where T : class @@ -234,16 +238,16 @@ public void RegisterComponent(string componentName, Func componentInitiali () => { var key = new ComponentKey(componentName, typeof(T)); - if (!_componentRegistry.ContainsKey(key) || overwrite) + if (!_componentRegistry.ContainsKey(key) || overwrite) // only proceed if key not found or overwrite is true { - if (_componentRegistry.ContainsKey(key) && overwrite) + + if (overwrite + && _componentRegistry.TryGetValue(key, out var existed) + && existed is IAzureSessionListener existedListener) { - var existed = _componentRegistry[key]; - if (existed is IAzureSessionListener existedListener) - { - _eventHandler -= existedListener.OnEvent; - } + _eventHandler -= existedListener.OnEvent; } + var component = componentInitializer(); _componentRegistry[key] = component; if (component is IAzureSessionListener listener) @@ -260,14 +264,9 @@ public void UnregisterComponent(string componentName) where T : class () => { var key = new ComponentKey(componentName, typeof(T)); - if (_componentRegistry.ContainsKey(key)) + if (_componentRegistry.TryRemove(key, out var component) && component is IAzureSessionListener listener) { - var component = _componentRegistry[key]; - if (component is IAzureSessionListener listener) - { - _eventHandler -= listener.OnEvent; - } - _componentRegistry.Remove(key); + _eventHandler -= listener.OnEvent; } }); } diff --git a/src/Common/AzurePSCmdlet.cs b/src/Common/AzurePSCmdlet.cs index 70b3a2d11a..ecfd30138c 100644 --- a/src/Common/AzurePSCmdlet.cs +++ b/src/Common/AzurePSCmdlet.cs @@ -324,12 +324,12 @@ protected virtual void SetupHttpClientPipeline() AzureSession.Instance.ClientFactory.AddUserAgent(ModuleName, this.ModuleVersion); try { string hostEnv = AzurePSCmdlet.getEnvUserAgent(); - if (!String.IsNullOrWhiteSpace(hostEnv)) + if (!String.IsNullOrWhiteSpace(hostEnv)) { AzureSession.Instance.ClientFactory.AddUserAgent(hostEnv); } - } - catch (Exception) + } + catch (Exception) { // ignore if it failed. } @@ -409,7 +409,7 @@ protected override void BeginProcessing() private void WriteBreakingChangeOrPreviewMessage() { if (AzureSession.Instance.TryGetComponent(nameof(IConfigManager), out var configManager) - && configManager.GetConfigValue(ConfigKeysForCommon.DisplayBreakingChangeWarning)) + && configManager.GetConfigValue(ConfigKeysForCommon.DisplayBreakingChangeWarning, MyInvocation)) { BreakingChangeAttributeHelper.ProcessCustomAttributesAtRuntime(this.GetType(), this.MyInvocation, WriteWarning); @@ -457,7 +457,7 @@ protected override void EndProcessing() if (MetricHelper.IsCalledByUser() && SurveyHelper.GetInstance().ShouldPromptAzSurvey() && (AzureSession.Instance.TryGetComponent(nameof(IConfigManager), out var configManager) - && !configManager.GetConfigValue(ConfigKeysForCommon.EnableInterceptSurvey).Equals(false))) + && !configManager.GetConfigValue(ConfigKeysForCommon.EnableInterceptSurvey, MyInvocation).Equals(false))) { WriteSurvey(); if (_qosEvent != null) @@ -516,7 +516,7 @@ protected bool IsVerbose() protected void WriteSurvey() { - // Using color same with Azure brand event. + // Using color same with Azure brand event. // Using Ansi Code to control font color(97(Bold White)) and background color(0;120;212(RGB)) string ansiCodePrefix = "\u001b[97;48;2;0;120;212m"; // using '[k' for erase in line. '[0m' to ending ansi code @@ -540,7 +540,7 @@ protected void WriteSurvey() } base.WriteError(errorRecord); if (AzureSession.Instance.TryGetComponent(nameof(IConfigManager), out var configManager) - && configManager.GetConfigValue(ConfigKeysForCommon.DisplayBreakingChangeWarning)) + && configManager.GetConfigValue(ConfigKeysForCommon.DisplayBreakingChangeWarning, MyInvocation)) { PreviewAttributeHelper.ProcessCustomAttributesAtRuntime(this.GetType(), this.MyInvocation, WriteWarning); } @@ -863,7 +863,7 @@ private void RecordDebugMessages() private bool ShouldRecordDebugMessages() { return AzureSession.Instance.TryGetComponent(nameof(IConfigManager), out var configManager) - && configManager.GetConfigValue(ConfigKeysForCommon.EnableErrorRecordsPersistence) + && configManager.GetConfigValue(ConfigKeysForCommon.EnableErrorRecordsPersistence, MyInvocation) && IsDataCollectionAllowed(); } diff --git a/src/Dependencies.Test.targets b/src/Dependencies.Test.targets index 60db00b0bf..dfd3a82a87 100644 --- a/src/Dependencies.Test.targets +++ b/src/Dependencies.Test.targets @@ -5,19 +5,12 @@ - - - - - - - - - - - - - - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/src/Probe.Test/Probe.Test.csproj b/src/Probe.Test/Probe.Test.csproj index 66c767dc3d..103737f2a0 100644 --- a/src/Probe.Test/Probe.Test.csproj +++ b/src/Probe.Test/Probe.Test.csproj @@ -3,7 +3,7 @@ - netcoreapp2.1 + net8.0 Microsoft.Azure.PowerShell.Probe.Test $(ProjectDir)..\..\artifacts\$(Configuration) true diff --git a/src/ResourceManager.Test/AzureRMCmdletAuthenticationUnitTests.cs b/src/ResourceManager.Test/AzureRMCmdletAuthenticationUnitTests.cs index 24d777af04..2715f3e91a 100644 --- a/src/ResourceManager.Test/AzureRMCmdletAuthenticationUnitTests.cs +++ b/src/ResourceManager.Test/AzureRMCmdletAuthenticationUnitTests.cs @@ -101,7 +101,7 @@ public void TestGetAuxHeaderByTenantIds() var header = cmdlet.GetAuxilaryAuthHeaderByTenatIds(tenants); - Assert.Equal(1, header.Count); + Assert.Single(header); var h = header.First(); Assert.Equal("x-ms-authorization-auxiliary", h.Key); Assert.Single(h.Value); diff --git a/src/ResourceManager.Test/CredentialManager.cs b/src/ResourceManager.Test/CredentialManager.cs index 1b88a69109..1dbc404284 100644 --- a/src/ResourceManager.Test/CredentialManager.cs +++ b/src/ResourceManager.Test/CredentialManager.cs @@ -12,14 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using System; +using System.Collections.Generic; + namespace Microsoft.Azure.Commands.Common.Compute.Tests { - using System; - using System.Collections.Generic; - using System.IO; - using Microsoft.IdentityModel.Clients.ActiveDirectory; - using Microsoft.Rest; - class CredentialManager { protected CredentialManager() { } @@ -38,20 +35,6 @@ protected CredentialManager() { } public string TenantId { get; private set; } public string SubscriptionId { get; private set; } - public TokenCredentials TokenCredentials - { - get - { - var clientCredential = new ClientCredential(ApplicationId, ApplicationSecret); - var context = new AuthenticationContext(Path.Combine(AuthUrl, TenantId)); - var result = context.AcquireTokenAsync(BaseUrl, clientCredential); - - if (result == null) throw new InvalidOperationException("Failed to obtain the token"); - - return new TokenCredentials(result.Result.AccessToken); - } - } - public static CredentialManager FromServicePrincipalEnvVariable(string envVariableName = ServicePrincipalEnvVariableName) { //AZURE_SERVICE_PRINCIPAL = UserId =< UserGuid >; Password =< Password >; AADTenant =< TenantGuid >; SubscriptionId =< SubscriptionId > diff --git a/src/ResourceManager.Test/RPRegistrationDelegatingHandlerTests.cs b/src/ResourceManager.Test/RPRegistrationDelegatingHandlerTests.cs index ce0c010995..3e480db8f2 100644 --- a/src/ResourceManager.Test/RPRegistrationDelegatingHandlerTests.cs +++ b/src/ResourceManager.Test/RPRegistrationDelegatingHandlerTests.cs @@ -39,7 +39,7 @@ public RPRegistrationDelegatingHandlerTests(ITestOutputHelper output) } [Fact] - public void InvokeRegistrationForUnregisteredResourceProviders() + public async Task InvokeRegistrationForUnregisteredResourceProviders() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -75,16 +75,16 @@ public void InvokeRegistrationForUnregisteredResourceProviders() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Contains(msgs, s => s.Equals("Succeeded to register resource provider 'microsoft.compute'")); Assert.Equal(HttpStatusCode.Accepted, response.StatusCode); - Assert.Equal("Azure works!", response.Content.ReadAsStringAsync().Result); + Assert.Equal("Azure works!", await response.Content.ReadAsStringAsync()); } [Fact] - public void DoesNotInvokeRegistrationForRegisteredResourceProviders() + public async Task DoesNotInvokeRegistrationForRegisteredResourceProviders() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -108,16 +108,16 @@ public void DoesNotInvokeRegistrationForRegisteredResourceProviders() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Empty(msgs); Assert.Equal(HttpStatusCode.Accepted, response.StatusCode); - Assert.Equal("Azure works!", response.Content.ReadAsStringAsync().Result); + Assert.Equal("Azure works!", await response.Content.ReadAsStringAsync()); } [Fact] - public void DoesNotInvokeRegistrationForUnrelatedStatusCode() + public async Task DoesNotInvokeRegistrationForUnrelatedStatusCode() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -141,16 +141,16 @@ public void DoesNotInvokeRegistrationForUnrelatedStatusCode() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Empty(msgs); Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); - Assert.Equal("auth error!", response.Content.ReadAsStringAsync().Result); + Assert.Equal("auth error!", await response.Content.ReadAsStringAsync()); } [Fact] - public void DoesNotInvokeRegistrationForIncompatibleUri() + public async Task DoesNotInvokeRegistrationForIncompatibleUri() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -174,16 +174,16 @@ public void DoesNotInvokeRegistrationForIncompatibleUri() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Empty(msgs); Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); - Assert.Equal("registered to use namespace", response.Content.ReadAsStringAsync().Result); + Assert.Equal("registered to use namespace", await response.Content.ReadAsStringAsync()); } [Fact] - public void DoesNotHangForLongRegistrationCalls() + public async Task DoesNotHangForLongRegistrationCalls() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -219,17 +219,17 @@ public void DoesNotHangForLongRegistrationCalls() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Contains(msgs, s => s.Equals("Failed to register resource provider 'microsoft.compute'.Details: 'The operation has timed out.'")); Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); - Assert.Equal("registered to use namespace", response.Content.ReadAsStringAsync().Result); + Assert.Equal("registered to use namespace", await response.Content.ReadAsStringAsync()); mockProvidersOperations.Verify(f => f.RegisterWithHttpMessagesAsync("microsoft.compute", null, It.IsAny()), Times.AtMost(5)); } [Fact] - public void DoesNotThrowForFailedRegistrationCall() + public async Task DoesNotThrowForFailedRegistrationCall() { // Setup Mock mockClient = new Mock() { CallBase = true }; @@ -256,12 +256,12 @@ public void DoesNotThrowForFailedRegistrationCall() HttpClient httpClient = new HttpClient(rpHandler); // Test - HttpResponseMessage response = httpClient.SendAsync(request).Result; + HttpResponseMessage response = await httpClient.SendAsync(request); // Assert Assert.Contains(msgs, s => s.Equals("Failed to register resource provider 'microsoft.compute'.Details: 'PR reg failed'")); Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); - Assert.Equal("registered to use namespace", response.Content.ReadAsStringAsync().Result); + Assert.Equal("registered to use namespace", await response.Content.ReadAsStringAsync()); mockProvidersOperations.Verify(f => f.RegisterWithHttpMessagesAsync("microsoft.compute", null, It.IsAny()), Times.AtMost(4)); } } diff --git a/src/ResourceManager.Test/ResourceManager.Test.csproj b/src/ResourceManager.Test/ResourceManager.Test.csproj index 25df749c1f..2968689e6b 100644 --- a/src/ResourceManager.Test/ResourceManager.Test.csproj +++ b/src/ResourceManager.Test/ResourceManager.Test.csproj @@ -3,7 +3,7 @@ - netcoreapp2.1 + net8.0 Microsoft.Azure.PowerShell.ResourceManager.Test Microsoft.Azure.Commands.Common.ResourceManager.Tests $(ProjectDir)..\..\artifacts\$(Configuration) diff --git a/src/Strategies.Test/Strategies.Test.csproj b/src/Strategies.Test/Strategies.Test.csproj index 7b4c571686..57630ec1d0 100644 --- a/src/Strategies.Test/Strategies.Test.csproj +++ b/src/Strategies.Test/Strategies.Test.csproj @@ -3,7 +3,7 @@ - netcoreapp2.1 + net8.0 Microsoft.Azure.PowerShell.Strategies.Test Microsoft.Azure.Commands.Common.Strategies.UnitTest $(ProjectDir)..\..\artifacts\$(Configuration) diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.abstractions.dll b/tools/xunit.runner.console.2.3.1/net452/xunit.abstractions.dll deleted file mode 100644 index fb67919557..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/net452/xunit.abstractions.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe b/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe deleted file mode 100644 index d89060b7d1..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe.config b/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe.config deleted file mode 100644 index 25ea16f75e..0000000000 --- a/tools/xunit.runner.console.2.3.1/net452/xunit.console.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe b/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe deleted file mode 100644 index e90007d496..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe.config b/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe.config deleted file mode 100644 index 25ea16f75e..0000000000 --- a/tools/xunit.runner.console.2.3.1/net452/xunit.console.x86.exe.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.runner.reporters.net452.dll b/tools/xunit.runner.console.2.3.1/net452/xunit.runner.reporters.net452.dll deleted file mode 100644 index b086181543..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/net452/xunit.runner.reporters.net452.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/net452/xunit.runner.utility.net452.dll b/tools/xunit.runner.console.2.3.1/net452/xunit.runner.utility.net452.dll deleted file mode 100644 index e413c0449c..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/net452/xunit.runner.utility.net452.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.abstractions.dll b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.abstractions.dll deleted file mode 100644 index c64c173df6..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.abstractions.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.deps.json b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.deps.json deleted file mode 100644 index 6c19e1c25b..0000000000 --- a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.deps.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v2.0", - "signature": "14b77be710e658fc67d1252c845ee0509afcc877" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v2.0": { - "xunit.console/99.99.99-dev": { - "dependencies": { - "xunit.runner.reporters": "99.99.99-dev" - }, - "runtime": { - "xunit.console.dll": {} - } - }, - "Microsoft.NETCore.Targets/1.0.1": {}, - "System.IO/4.1.0": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1", - "System.Runtime": "4.1.0", - "System.Text.Encoding": "4.0.11", - "System.Threading.Tasks": "4.0.11" - } - }, - "System.Reflection/4.1.0": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1", - "System.IO": "4.1.0", - "System.Reflection.Primitives": "4.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Reflection.Primitives/4.0.1": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Runtime/4.1.0": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1" - } - }, - "System.Runtime.Loader/4.0.0": { - "dependencies": { - "System.IO": "4.1.0", - "System.Reflection": "4.1.0", - "System.Runtime": "4.1.0" - } - }, - "System.Text.Encoding/4.0.11": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1", - "System.Runtime": "4.1.0" - } - }, - "System.Threading.Tasks/4.0.11": { - "dependencies": { - "Microsoft.NETCore.Targets": "1.0.1", - "System.Runtime": "4.1.0" - } - }, - "xunit.abstractions/2.0.1": { - "runtime": { - "lib/netstandard1.0/xunit.abstractions.dll": {} - } - }, - "xunit.runner.reporters/99.99.99-dev": { - "dependencies": { - "xunit.runner.utility": "99.99.99-dev" - }, - "runtime": { - "xunit.runner.reporters.netcoreapp10.dll": {} - } - }, - "xunit.runner.utility/99.99.99-dev": { - "dependencies": { - "System.Runtime.Loader": "4.0.0", - "xunit.abstractions": "2.0.1" - }, - "runtime": { - "xunit.runner.utility.netcoreapp10.dll": {} - } - } - } - }, - "libraries": { - "xunit.console/99.99.99-dev": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.NETCore.Targets/1.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+mly19As6R32Qei8j7yPvEv5QXtLGoWpaX8v05ZLQKQ5LIFYdDYFHfniqtw6UmwhrqdKjnjCmyg4LLKNOjpiPw==", - "path": "microsoft.netcore.targets/1.0.1", - "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" - }, - "System.IO/4.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+3gD6u3isZkZb8s+gUPeN35BRLGdV4mgF7Tkbj0TCioWbOK7QMNP1Buci4pY2VP4bCfhz2DpEnMjyoqFcNZcCA==", - "path": "system.io/4.1.0", - "hashPath": "system.io.4.1.0.nupkg.sha512" - }, - "System.Reflection/4.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FjBmWyqNRTiwY1F8l+gTUAdfHSOneVqB1exyKp3J5HFtNpECjha/5ZHW/f1nLrvJgJVGUY48iCbrTm7PzanJsQ==", - "path": "system.reflection/4.1.0", - "hashPath": "system.reflection.4.1.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vv1KIz9SvqWGPxqOjs5LzWvSC+ffwzdzu82+rP/VawIdALRuCK72+HFTjgu+0qRCaa2BnWSfIBI8DgjMtRBQpg==", - "path": "system.reflection.primitives/4.0.1", - "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" - }, - "System.Runtime/4.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5szIbAtI7iYhNTTkFkis2hQC5Zcl8VQwXBrQtOp25o9agQ3z2T6fWltF7uUZDNWdc5YTzwao481UN42MbMZ34w==", - "path": "system.runtime/4.1.0", - "hashPath": "system.runtime.4.1.0.nupkg.sha512" - }, - "System.Runtime.Loader/4.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4XWJKx7QfOmAN3NTw5pK4gk3qrOmRxocNj9AbsyeDjF01ZIhlBAntGUGZ+yn3IfeOYDgjSb14vEpicfprYUX1Q==", - "path": "system.runtime.loader/4.0.0", - "hashPath": "system.runtime.loader.4.0.0.nupkg.sha512" - }, - "System.Text.Encoding/4.0.11": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GF57j2sdteSPSoq9k723kxR9FoO1LPplJrrPEZKSI3/f7XL35xAkEcVQjXUJ3l50T1wv/xjvTn3oi2D3nuAZvQ==", - "path": "system.text.encoding/4.0.11", - "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" - }, - "System.Threading.Tasks/4.0.11": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lXsVXEfaOGNPXkCzT5ou7Q/lVxIkTI3s4jjl0FzGcVDexGTpWb7HLc0lbIBBn+btlrhUoDok8YgiQReQePeVxw==", - "path": "system.threading.tasks/4.0.11", - "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" - }, - "xunit.abstractions/2.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bDm/zdG5rnRDsobKuKwrvL4HccBdC0uvT12be6fG12P3d1U7u9Wkvfoq/PM2GeyIeb0Dtcmm/7k2oaawiqQ2Dg==", - "path": "xunit.abstractions/2.0.1", - "hashPath": "xunit.abstractions.2.0.1.nupkg.sha512" - }, - "xunit.runner.reporters/99.99.99-dev": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "xunit.runner.utility/99.99.99-dev": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll deleted file mode 100644 index ccbee71acf..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll.config b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll.config deleted file mode 100644 index 25ea16f75e..0000000000 --- a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.dll.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.runtimeconfig.json b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.runtimeconfig.json deleted file mode 100644 index 7539019b10..0000000000 --- a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.console.runtimeconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "runtimeOptions": { - "tfm": "netcoreapp2.0", - "framework": { - "name": "Microsoft.NETCore.App", - "version": "2.0.0" - } - } -} \ No newline at end of file diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.reporters.netcoreapp10.dll b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.reporters.netcoreapp10.dll deleted file mode 100644 index 20954a2afa..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.reporters.netcoreapp10.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.dll b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.dll deleted file mode 100644 index d9a50c3490..0000000000 Binary files a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.dll and /dev/null differ diff --git a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.xml b/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.xml deleted file mode 100644 index 0d256db960..0000000000 --- a/tools/xunit.runner.console.2.3.1/netcoreapp2.0/xunit.runner.utility.netcoreapp10.xml +++ /dev/null @@ -1,4440 +0,0 @@ - - - - xunit.runner.utility.netcoreapp10 - - - - - This class is used to read configuration information for a test assembly. - - - - - Loads the test assembly configuration for the given test assembly. - - The test assembly. - The test assembly configuration file. - The test assembly configuration. - - - - Loads the test assembly configuration for the given test assembly from a JSON stream. Caller is responsible for opening the stream. - - Stream containing config for an assembly - The test assembly configuration. - - - - This class is used to read configuration information for a test assembly. - - - - - Loads the test assembly configuration for the given test assembly from a JSON stream. Caller is responsible for opening the stream. - - Stream containing config for an assembly - The test assembly configuration. - - - - Loads the test assembly configuration for the given test assembly. - - The test assembly. - The test assembly configuration file. - The test assembly configuration. - - - - INTERNAL CLASS. DO NOT USE. - - - - - - - - - - - INTERNAL CLASS. DO NOT USE. - - - - - - - - - - - INTERNAL INTERFACE. DO NOT USE. - - - - - - - - INTERNAL INTERFACE. DO NOT USE. - - - - - - - - INTERNAL CLASS. DO NOT USE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Interface implemented by runners, passed to , so that the - report can log lines of text to the output device. - - - - - Gets a lock object that can be used to ensure that multiple calls to - log messages will always be grouped together. - - - - - Logs a normal-priority message with stack frame. - - The stack frame information - The message to be logged - - - - Logs a high-priority message with stack frame. - - The stack frame information - The message to be logged - - - - Logs a warning message with stack frame. - - The stack frame information - The message to be logged - - - - Logs an error message with stack frame. - - The stack frame information - The message to be logged - - - - This interface represents a reporter which is invoked by a test runner - during test execution. The report can be explicitly invoked by a command - line switch or implicitly invoked by being environmentally enabled (for - example, a reporter that emits messages for TeamCity). - - - - - Gets the description of the reporter. This is typically used when showing - the user the invocation option for the reporter. - - - - - Gets a value which indicates whether the reporter should be - environmentally enabled. - - - - - Gets a value which indicates a runner switch which can be used - to explicitly enable the runner. If the return value is null, - then the reported can only be environmentally enabled (implicitly). - This value is used either as a command line switch (with the console or - .NET CLI runner) or as a runner configuration value (with the MSBuild runner). - - - - - Creates a message handler that will report messages for the given - test assembly. Ideally, the handler should also implement - for optimal performance, but plain implementations of are supported - for backward compatibility reasons. - - The logger used to send result messages to - The message handler that handles the messages - - - - A message sent to implementations of when - discovery is finished for a test assembly. - - - - - Gets information about the assembly being discovered. - - - - - Gets the options that were used during discovery. - - - - - Gets the number of test cases that were discovered. This is the raw - number of test cases found before filtering is applied by the runner. - - - - - Gets the number of test cases that will be run. This is the number of - test cases found after filtering is applied by the runner. - - - - - A message sent to implementations of when - discovery is starting for a test assembly. - - - - - Gets a flag which indicates whether the tests will be discovered and run in a - separate app domain. - - - - - Gets information about the assembly being discovered. - - - - - Gets the options that will be used during discovery. - - - - - Gets a flag which indicates whether shadow copies are being used. If app domains are - not enabled, then this value is ignored. - - - - - A message sent to implementations of when - execution is finished for a test assembly. - - - - - Gets information about the assembly being discovered. - - - - - Gets the options that were used during execution. - - - - - Gets the summary of the execution results for the test assembly. - - - - - A message sent to implementations of when - execution is starting for a test assembly. - - - - - Gets information about the assembly being discovered. - - - - - Gets the options that will be used during execution. - - - - - A message sent to implementations of when - execution of all test assemblies has completed. - - - - - Gets the clock time elapsed when running the tests. This may different significantly - from the sum of the times reported in the summaries, if the runner chose to run - the test assemblies in parallel. - - - - - Gets the summaries of all the tests run. The key is the display name of the test - assembly; the value is the summary of test execution for that assembly. - - - - - Indicates the level of app domain support that the runner is requesting. - - - - - Requests that app domains be used, if available; if app domains cannot be used, then - the tests will be discovered and run in the runner's app domain. - - - - - Requires that tests be run in the runner's app domain. This is supported by all runners - and all execution libraries. - - - - - Represents a class which acts as a front controller for unit testing frameworks. - This allows runners to run tests from multiple unit testing frameworks (in particular, - hiding the differences between xUnit.net v1 and v2 tests). - - - - - Gets a flag indicating whether this discovery/execution can use app domains. - - - - - An implementation of that always returns no - source information. Useful for test runners which don't need or cannot provide source - information during discovery. - - - - - - - - - - - Represents the configuration items set in the App.config file of a test assembly. - Should be read with the class. - - - - - Gets or sets a flag indicating whether an app domain should be used to discover and run tests. - - - - - Gets or sets a flag indicating whether an app domain should be used to discover and run tests. - If the flag is not set, returns the default value (). - - - - - Gets or sets a flag indicating that the end user wants diagnostic messages - from the test framework. - - - - - Gets a flag indicating that the end user wants diagnostic messages - from the test framework. If the flag is not set, returns the default - value (false). - - - - - Gets or sets a flag indicating that the end user wants internal diagnostic messages - from the test framework. - - - - - Gets a flag indicating that the end user wants internal diagnostic messages - from the test framework. If the flag is not set, returns the default - value (false). - - - - - Gets the number of seconds that a test can run before being considered "long running". Set to a positive - value to enable the feature. - - - - - Gets the number of seconds that a test can run before being considered "long running". If the value is not - set, returns the default value (-1). - - - - - Gets or sets the maximum number of thread to use when parallelizing this assembly. - - - - - Gets the maximum number of thread to use when parallelizing this assembly. - If the value is not set, returns the default value (). - - - - - Gets or sets the default display name for test methods. - - - - - Gets the default display name for test methods. If the value is not set, returns - the default value (). - - - - - Gets or sets a flag indicating that this assembly is safe to parallelize against - other assemblies. - - - - - Gets a flag indicating that this assembly is safe to parallelize against - other assemblies. If the flag is not set, returns the default value (false). - - - - - Gets or sets a flag indicating that this test assembly wants to run test collections - in parallel against one another. - - - - - Gets a flag indicating that this test assembly wants to run test collections - in parallel against one another. If the flag is not set, returns the default - value (true). - - - - - Gets or sets a flag indicating whether theory data should be pre-enumerated during - test discovery. - - - - - Gets a flag indicating whether theory data should be pre-enumerated during - test discovery. If the flag is not set, returns the default value (true). - - - - - Gets or sets a flag indicating whether shadow copies should be used. - - - - - Gets a flag indicating whether shadow copies should be used. If the flag is not set, - returns the default value (true). - - - - - Gets or sets a flag indicating whether testing should stop on a failure. - - - - - Gets a flag indicating whether testing should stop on a test failure. If the flag is not set, - returns the default value (false). - - - - - Represents options passed to a test framework for discovery or execution. - - - - - Creates an instance of - - The optional configuration to copy values from. - - - - Creates an instance of - - The optional configuration to copy values from. - - - - Gets a value from the options collection. - - The type of the value. - The name of the value. - Returns the value. - - - - Sets a value into the options collection. - - The type of the value. - The name of the value. - The value. - - - - An implementation of for xUnit.net v1. - - - - - Initializes a new instance of the class. - - The filename of the test assembly. - - - - Gets the filename of the test assembly. - - - - - An implementation of , - and for xUnit.net v1 tests. - - - - - Initializes a new instance of the class. - - The assembly under test. - The type under test. - The method under test. - - - - Gets the name of the assembly under test. - - - - - Gets the name of the method under test. - - - - - Gets the name of the type under test. - - - - - Gets the unique ID for the test. - - - - - Collects statistics from running tests. - - - - - A flag that indicates whether or not to continue running tests. - - - - - The total number of tests run. - - - - - The number of tests that failed. - - - - - The number of tests that were skipped. - - - - - The time spent running the tests. - - - - - Aggregates the current results with the other results. - - The other result. - - - - Resets the counted results back to zero. - - - - - An implementation of for xUnit v1. - - - - - Initializes a new instance of the class. - - The test case this test belongs to. - The display name for this test. - - - - - - - - - - An implementation of that adapts xUnit.net v1's XML-based APIs - into xUnit.net v2's object-based APIs. - - - - - - - - Initializes a new instance of the class. - - The assembly under test. - The configuration file name. - The type under test. - The method under test. - The display name of the unit test. - The traits of the unit test. - The skip reason, if the test is skipped. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This class be used to do discovery and execution of xUnit.net v2 tests - using a reflection-based implementation of . - - - - - Initializes a new instance of the class. - - Determines whether tests should be run in a separate app domain. - The source code information provider. - The test assembly. - The test assembly configuration file. - If set to true, runs tests in a shadow copied app domain, which allows - tests to be discovered and run without locking assembly files on disk. - The path on disk to use for shadow copying; if null, a folder - will be automatically (randomly) generated - The message sink which received messages. - Determines whether or not the existence of the test assembly is verified. - - - - - - - - - - - - - Starts the process of running all the xUnit.net v2 tests in the assembly. - - The message sink to report results back to. - The options to be used during test discovery. - The options to be used during test execution. - - - - Starts the process of running the selected xUnit.net v2 tests. - - The test cases to run; if null, all tests in the assembly are run. - The message sink to report results back to. - The options to be used during test execution. - - - - This class be used to do discovery of xUnit.net v2 tests, via any implementation - of , including AST-based runners like CodeRush and - Resharper. Runner authors who are not using AST-based discovery are strongly - encouraged to use instead. - - - - - Initializes a new instance of the class. - - Determines whether tests should be run in a separate app domain. - The source code information provider. - The assembly to use for discovery - The path on disk of xunit.execution.dll; if null, then - the location of xunit.execution.dll is implied based on the location of the test assembly - The path on disk to use for shadow copying; if null, a folder - will be automatically (randomly) generated - The message sink which received messages. - Determines whether or not to check for the existence of assembly files. - - - - Gets a value indicating whether the tests can use app domains (must be linked against desktop execution library). - - - - - Gets the message sink used to report diagnostic messages. - - - - - Returns the test framework from the remote app domain. - - - - - - - - - - - Creates a high performance cross AppDomain message sink that utilizes - which can be passed to and . - - The local message sink to receive the messages. - - - - - - - Starts the process of finding all xUnit.net v2 tests in an assembly. - - Whether to include source file information, if possible. - The message sink to report results back to. - The options used by the test framework during discovery. - - - - Starts the process of finding all xUnit.net v2 tests in a class. - - The fully qualified type name to find tests in. - Whether to include source file information, if possible. - The message sink to report results back to. - The options used by the test framework during discovery. - - - - - - - - - - An implementation of that will provide source information - when running inside of Visual Studio (via the DiaSession class). - - - - - Initializes a new instance of the class. - - The assembly file name. - - - - - - - - - - Default implementation of which supports running tests from - both xUnit.net v1 and v2. - - - - - This constructor is for unit testing purposes only. - - - - - Initializes a new instance of the class. - - Determines whether tests should be run in a separate app domain. - The test assembly. - The test assembly configuration file. - If set to true, runs tests in a shadow copied app domain, which allows - tests to be discovered and run without locking assembly files on disk. - The path on disk to use for shadow copying; if null, a folder - will be automatically (randomly) generated - The source information provider. If null, uses the default (). - The message sink which received messages. - - - - - - - - - - - - - - - - FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Identifies a message that can return its own type information. - - - - - Gets the interface type full names of the implemented interfaces. - - - - - Represents an endpoint for the reception of test messages. This endpoint can have the list of types - of the message passed in to optimize the performance of message dispatching. - - - - - Reports the presence of a message on the message bus with an optional list of message types. - This method should never throw exceptions. - - The message from the message bus. - The list of message types, or null. - Return true to continue running tests, or false to stop. - - - - Represents information about long running tests from . - - - - - Initializes a new instance of the class. - - Configured notification time - Tests - - - - - - - - - - Adapts an implementation of to provide an implementation - of . - - - - - - - - Returns the implemented interface types, if known. - - The message interfaces to retrieve. - The hash set of interfaces, if known; null, otherwise. - - - - - - - - - - Determines whether the given sink is already an implementation of , - and if not, creates a wrapper to adapt it. - - The sink to test, and potentially adapt. - - - - Adapts an implementation of to provide an implementation - of (albeit one without the typical performance - benefits associated with the latter interface). - - - - - - - - - - - - - - Determines whether the given sink is already an implementation of , - and if not, creates a wrapper to adapt it. - - The sink to test, and potentially adapt. - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - Information about the assembly that is being discovered - The discovery options - The number of test cases discovered - The number of test cases to be run - - - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - Information about the assembly that is being discovered - Indicates whether the tests will be discovered and run in a separate app domain - Indicates whether shadow copying is being used - The discovery options - - - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - Information about the assembly that is being discovered - The execution options - The execution summary - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - Information about the assembly that is being discovered - The execution options - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - Represents a set of filters for an . - - - - - Initializes a new instance of the class. - - - - - Gets the set of trait filters for tests to exclude. - - - - - Gets the set of trait filters for tests to include. - - - - - Gets the set of method filters for test classes to include. - - - - - Gets the set of method filters for tests to include. - - - - - Gets the set of assembly filters for tests to include. - - - - - Filters the given method using the defined filter values. - - The test case to filter. - Returns true if the test case passed the filter; returns false otherwise. - - - - FOR INTERNAL USE ONLY. - - - - - - - - - - - - - - - - - - - - - - - Represents an assembly in an . - - - - - Gets or sets the assembly filename. - - - - - Gets or sets the config filename. - - - - - Gets the configuration values read from the test assembly configuration file. - - - - - Gets or sets a value indicating whether to shadow copy the assembly - when running the tests. - - - - - The default implementation of , used - by runners when there is no other overridden reporter. It returns - an instance of . - - - - - - - - - - - - - - - - - Default implementation of used to report - messages for test runners. - - - - - Initializes a new instance of the class. - - The logger used to report messages - - - - Get the logger used to report messages. - - - - - Escapes text for display purposes. - - The text to be escaped - The escaped text - - - - Gets the display name of a test assembly from a test assembly message. - - The test assembly message - The assembly display name - - - - Gets the display name of a test assembly from a test assembly message. - - The test assembly - The assembly display name - - - - Get the test framework options for the given assembly. If it cannot find them, then it - returns a default set of options. - - The test assembly filename - - - - - Logs an error message to the logger. - - The type of the failure - The failure information - - - - Logs a stack trace to the logger. - - - - - Lots test output to the logger. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Writes the default summary to the given logger. Can be used by other reporters who also wish to write the - standard summary information. - - The logger used to send result messages to. - The execution summary to display. - - - - The default implementation of , used - by runners when there is no other overridden reporter. It returns - an instance of . - - - - - - - - - - - - - - - - - Default implementation of used to report - messages for test runners. - - - - - Initializes a new instance of the class. - - The logger used to report messages - - - - Get the logger used to report messages. - - - - - Escapes text for display purposes. - - The text to be escaped - The escaped text - - - - Gets the display name of a test assembly from a test assembly message. - - The test assembly message - The assembly display name - - - - Gets the display name of a test assembly from a test assembly message. - - The test assembly - The assembly display name - - - - Get the test framework options for the given assembly. If it cannot find them, then it - returns a default set of options. - - The test assembly filename - - - - - Logs an error message to the logger. - - The type of the failure - The failure information - - - - Logs a stack trace to the logger. - - - - - Lots test output to the logger. - - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Called when is raised. - - An object that contains the event data. - - - - Writes the default summary to the given logger. Can be used by other reporters who also wish to write the - standard summary information. - - The logger used to send result messages to. - The execution summary to display. - - - - A class which makes it simpler for casual runner authors to find and run tests and get results. - - - - - Set to get notification of diagnostic messages. - - - - - Set to get notification of when test discovery is complete. - - - - - Set to get notification of error messages (unhandled exceptions outside of tests). - - - - - Set to get notification of when test execution is complete. - - - - - Set to get notification of failed tests. - - - - - Set to get notification of finished tests (regardless of outcome). - - - - - Set to get real-time notification of test output (for xUnit.net v2 tests only). - Note that output is captured and reported back to all the test completion Info>s - in addition to being sent to this Info>. - - - - - Set to get notification of passing tests. - - - - - Set to get notification of skipped tests. - - - - - Set to get notification of when tests start running. - - - - - Gets the current status of the assembly runner - - - - - Set to be able to filter the test cases to decide which ones to run. If this is not set, - then all test cases will be run. - - - - - Call to request that the current run be cancelled. Note that cancellation may not be - instantaneous, and even after cancellation has been acknowledged, you can expect to - receive all the cleanup-related messages. - - - - - - - - Starts running tests from a single type (if provided) or the whole assembly (if not). This call returns - immediately, and status results are dispatched to the Info>s on this class. Callers can check - to find out the current status. - - The (optional) type name of the single test class to run - Set to true to enable diagnostic messages; set to false to disable them. - By default, uses the value from the assembly configuration file. - Set to choose the default display name style for test methods. - By default, uses the value from the assembly configuration file. (This parameter is ignored for xUnit.net v1 tests.) - Set to true to pre-enumerate individual theory tests; set to false to use - a single test case for the theory. By default, uses the value from the assembly configuration file. (This parameter is ignored - for xUnit.net v1 tests.) - Set to true to run test collections in parallel; set to false to run them sequentially. - By default, uses the value from the assembly configuration file. (This parameter is ignored for xUnit.net v1 tests.) - Set to 0 to use unlimited threads; set to any other positive integer to limit to an exact number - of threads. By default, uses the value from the assembly configuration file. (This parameter is ignored for xUnit.net v1 tests.) - Set to true to enable internal diagnostic messages; set to false to disable them. - By default, uses the value from the assembly configuration file. - - - - Creates an assembly runner that discovers and runs tests without a separate app domain. - - The test assembly. - - - - An enumeration which describes the current state of the system - - - - The system is not discovering or executing tests - - - The system is discovering tests - - - The system is executing tests - - - - Represents a diagnostic message from the xUnit.net system or third party extension. - - - - - - - - The diagnostic message. - - - - - Represents test discovery being completed. - - - - - - - - The number of test cases that were discovered. - - - - - The number of test cases that will be run, after filtering was applied. - - - - - Represents an error that happened outside the scope of a running test. - - - - - - - - The type of error condition that was encountered. - - - - - The exception that caused the test failure. - - - - - The message from the exception that caused the test failure. - - - - - The stack trace from the exception that caused the test failure. - - - - - An enumeration which indicates the type of error message (for ). - - - - An unhandled exception occurred that disrupted the execution engine - - - An unhandled exception happened while cleaning up from the test assembly - - - An unhandled exception happened while cleaning up from the test collection - - - An unhandled exception happened while cleaning up from the test class - - - An unhandled exception happened while cleaning up from the test method - - - An unhandled exception happened while cleaning up from the test case - - - An unhandled exception happened while cleaning up from the test - - - - Represents test assembly execution being finished. - - - - - - - - The total number of tests in the assembly. - - - - - The number of the tests that failed. - - - - - The number of tests that were skipped. - - - - - The total execution time spent running tests. - - - - - Used to report results when no tests are executed. - - - - - Represents information about a test that was executed. - - - - - - - - The number of seconds the test spent executing. - - - - - The output from the test. - - - - - Represents a test that failed. - - - - - - - - The exception that caused the test failure. - - - - - The message from the exception that caused the test failure. - - - - - The stack trace from the exception that caused the test failure. - - - - - Represents a test that finished, regardless of the result. - - - - - - - - A base class which contains information about a test. - - - - - - - - The fully qualified type name of the class that contains the test. - - - - - The name of the method that contains the test. - - - - - The traits associated with the test. - - - - - The display name for the test. - - - - - The display name of the test collection the test belongs to. - - - - - Represents live test output. - - - - - - - - The output from the test. - - - - - Represents a test that passed. - - - - - - - - Represents a test that was skipped. - - - - - - - - Gets the reason that was given for skipping the test. - - - - - Represents a test that is starting. - - - - - - - - An implementation of which dispatches messages - to one or more individual message sinks. - - - - - The list of event dispatchers that are registered with the system. - - - - - - - - Gets a dispatcher, optionally creating and registering it if it doesn't exist. - - The type of the dispatcher - The dispatcher - The dispatcher - - - - Reports the presence of a message on the message bus with an optional list of message types. - This method should never throw exceptions. - - The message from the message bus. - The list of message types, or null. - Return true to continue running tests, or false to stop. - - - - A delegating implementation of which provides the execution - summary and finished events when appropriate and cancellation support. - - - - - Initializes a new instance of the class. - - The inner sink to pass messages to. - - - - - - - - - - - - - - - - - - A delegating implementation of which converts all - skipped tests into failures before passing them on to the inner sink. - - - - - Initializes a new instance of the class. - - The sink to delegate messages to. - - - - - - - - - - - - - - - - A delegating implementation of which detects and reports when - tests have become long-running (during otherwise idle time). - - - - - Initializes a new instance of the class, with - long running test messages being delivered as instances to the - provided diagnostic message sink. - - The inner sink to delegate to. - The minimum amount of time a test runs to be considered long running. - The message sink to send messages to. - - - - Initializes a new instance of the class, with - long running test messages being delivered as to the - provided callback. - - The inner sink to delegate to. - The minimum amount of time a test runs to be considered long running. - The callback to dispatch messages to. - - - - - - - - - - Returns the current time in UTC. Overrideable for testing purposes. - - - - - - - - - - - Performs a Task-safe delay. Overrideable for testing purposes. - - - - - A delegating implementation of which is responsible for - creating the xUnit.net v2 XML output from the execution test results. This class is - not available in .NET 3.5 because it relies upon XML LINQ. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - - - Escapes a string for placing into the XML. - - The value to be escaped. - The escaped value. - - - - Class that maps diagnostic messages to events. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - - - - - - - Class that maps test framework discovery messages to events. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - - - - - - - Class that maps test framework execution messages to events. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - Occurs when a message is received. - - - - - - - - - - - Represents a handler for a specific . - - The type of the message to be handled. - The message. - - - - Allows cancellation during message handling. - - - - - Gets a value to indicate whether stop has been requested. - - - - - Call to indicate that execution should stop. - - - - - Wraps a specific with the ability to cancel execution. - - The type of the message to be handled. - - - - Initializes a new instance of the class. - - The message to be handled. - - - - Gets the message. - - - - - Class that maps test runner messages to events. - - - - - Occurs when the runner is starting discovery for a given test assembly. - - - - - Occurs when the runner has finished discovery for a given test assembly. - - - - - Occurs when the runner has finished executing the given test assembly. - - - - - Occurs when the runner is starting to execution the given test assembly. - - - - - Occurs when the runner has finished executing all test assemblies. - - - - - - - - - - - Represents an that can also provide execution - information like an . - - - - - Gets the final execution summary, once the execution is finished. - - - - - Gets an event which is signaled once execution is finished. - - - - - An implementation of designed for test discovery for a - single test assembly. The event is triggered when discovery is complete. - - - - - Initializes a new instance of the class. - - An optional thunk which can be used to control cancellation. - - - - The list of discovered test cases. - - - - - Gets an event which is signaled once discovery is finished. - - - - - - - - - - - An implementation of that provides access to events for all - levels of reporting. - - - - - Gets a list of diagnostics events that can be subscribed to. - - - - - Gets a list of discovery events that can be subscribed to. - - - - - Gets a list of execution events that can be subscribed to. - - - - - Gets a list of runner events that can be subscribed to. - - - - - - - - This class provides assistance with assembly resolution for missing assemblies. Runners may - need to use to help automatically resolve missing assemblies - when running tests. - - - - - Subscribes to the default event, to - provide automatic assembly resolution from an assembly which has a .deps.json file from the .NET SDK - build process. - - An object which, when disposed, un-subscribes. - - - - An implementation of which logs messages - to and . - - - - - Initializes a new instance of the class. - - A flag to indicate whether colors should be used when - logging messages. - - - - - - - - - - - - - - - - - - - Collects execution totals for a group of test cases. - - - - - Gets or set the total number of tests run. - - - - - Gets or sets the number of failed tests. - - - - - Gets or sets the number of skipped tests. - - - - - Gets or sets the total execution time for the tests. - - - - - Gets or sets the total errors (i.e., cleanup failures) for the tests. - - - - - Base class for all long-lived objects that may cross over an AppDomain. - - - - - A class which encapsulates support for resolving dependencies for .NET core assemblies. - This includes support for using the .deps.json file that sits alongside the assembly - so that dependencies do not need to be copied locally. It also supports loading native - assembly assets. - - - - - - - - Initializes a new instance of the class. - - The path to the assembly - An optional message sink for use with internal diagnostics messages; - may pass null for no internal diagnostics messages - - - - - - - - - - - - - Internal helper class for remoting. - - - - - Unregisters any remoting channels. - - - If there are any registered remoting channels, then MarshalByRefObjects - don't work. Based on bug #9749, it's clear that MSTest (at least through - Visual Studio 2010) registers remoting channels when it runs but doesn't - clean them up when it's done. Right now, the only way to reliably surface - this issue is through MSBuild (as per the bug repro), so for the moment - this work-around code is limited to the MSBuild runner. - - - - - Represents the top of a stack frame, typically taken from an exception or failure information. - - - - - Initializes a new instance of the class. - - - - - - - Gets the filename of the stack frame. May be null if the stack frame is not known. - - - - - Returns true if this is an empty stack frame (e.g., ). - - - - - Gets the line number of the stack frame. May be 0 if the stack frame is not known. - - - - - Get a default (unknown) stack frame info. - - - - - Creates a stack frame info from failure information. - - The failure information to inspect - The stack frame info - - - - Creates a tack frame from source information. This can be useful when simulating a - stack frame in a non-exceptional situation (f.e., for a skipped test). - - The source information to inspect - The stack frame info - - - - Transforms stack frames and stack traces into compiler-like output - so they can be double-clicked in Visual Studio. - - - - - Transforms an individual stack frame. - - The stack frame to transform - The default directory used for computing relative paths - The transformed stack frame - - - - Transforms a stack. - - The stack to transform - The default directory used for computing relative paths - The transformed stack - - - - An implementation of which converts all skipped - tests into failures, wrapping an existing - implementation. - - - - - Initializes a new instance of . - - The visitor to pass messages onto. - - - - - - - - - - Represents an implementation of that is specifically used - during test execution. Provides access to the final execution summary, as well as - an event which is triggered when execution is finished. - - - - - Gets the final execution summary, once the execution is finished. - - - - - Gets an event which is signaled once execution is finished. - - - - - - - - - - - - - - - - - An implementation of that provides several Visit methods that - can provide access to specific message types without the burden of casting. - - - - - Dispatches the message to the given callback, if it's of the correct type. - - The message type - The message - The callback - The result of the callback, if called; true, otherwise - - - - Dispatches the message to the given callback, if it's of the correct type. - The callback is provided with both the message and this instance of the visitor. - - The message type - The message - The callback - The result of the callback, if called; true, otherwise - - - - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue discovering/executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue discovering tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue discovering tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - Called when an instance of is sent to the message sink. - - The message. - Return true to continue executing tests; false otherwise. - - - - An implementation of that provides several Visit methods that - can provide access to specific message types without the burden of casting. It also records - when it sees a completion message, and sets the event appropriately. - - The type of the completion message. - - - - Initializes a new instance of the class. - - - - - This event is triggered when the completion message has been seen. - - - - - - - - - - - An implementation of which records the - execution summary for an assembly, as well as performing the XML aggregation - duties of . - - - - - Initializes a new instance of . - - The inner message sink to pass messages to. - The dictionary which collects execution summaries for all assemblies. - The root XML assembly element to collect the result XML. - The callback used to determine when to cancel execution. - - - - - - - - - - - - - An implementation of which records all operations into - xUnit.net v2 XML format. - - - - - Initializes a new instance of . - - The root XML assembly element to collect the result XML. - The callback used to determine when to cancel execution. - - - - Gets the callback used to determine when to cancel execution. - - - - - Gets or sets the number of errors that have occurred (outside of actual test execution). - - - - - Gets or sets the number of tests which failed. - - - - - Gets or sets the number of tests which were skipped. - - - - - Gets or sets the time spent executing tests, in seconds. - - - - - Gets or sets the total number of tests, regardless of result. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Escapes a string for placing into the XML. - - The value to be escaped. - The escaped value. - - - - Utility classes for dealing with Exception objects. - - - - - Combines multiple levels of messages into a single message. - - The failure information from which to get the messages. - The combined string. - - - - Combines multiple levels of stack traces into a single stack trace. - - The failure information from which to get the stack traces. - The combined string. - - - - Unwraps exceptions and their inner exceptions. - - The exception to be converted. - The failure information. - - - - Base class for all long-lived objects that may cross over an AppDomain. - - - - - Disconnects all remote objects. - - - - - Serializes and de-serializes objects - - - - - De-serializes an object. - - The type of the object - The object's serialized value - The de-serialized object - - - - Serializes an object. - - The value to serialize - The serialized value - - - Gets whether the specified is serializable with . - The object to test for serializability. - true if the object can be serialized; otherwise, false. - - - - Converts an assembly qualified type name into a object. - - The assembly qualified type name. - The instance of the , if available; null, otherwise. - - - - Converts an assembly name + type name into a object. - - The assembly name. - The type name. - The instance of the , if available; null, otherwise. - - - - Gets an assembly qualified type name for serialization, with special dispensation for types which - originate in the execution assembly. - - - - - Retrieves a substring from the string, with whitespace trimmed on both ends. - - The string. - The starting index. - The length. - - A substring starting no earlier than startIndex and ending no later - than startIndex + length. - - - - - An implementation of and that - ignores all messages. - - - - - - - - - - - - - - Default implementation of . - - - - - - - - - - - - - - - - - Indicates the default display name format for test methods. - - - - - Use a fully qualified name (namespace + class + method) - - - - - Use just the method name (without class) - - - - - A mirror class of the CLR's class. - - - - - Initializes a new instance of the class. - - The data to copy into the serialization info - - - - - - - - - - - - - Returns BASE64 encoded string that represents the entirety of the data. - - - - - Returns a triple for a key/value pair of data in a complex object - - The triple to be serialized - The serialized version of the triple - - - - Returns the triple values out of a serialized triple. - - The serialized triple - The de-serialized triple - - - - De-serializes a value that was serialized with . - - The type of the object to de-serialize into - The serialized value - The de-serialized object - - - - Serializes an object. - - The value to be serialized - The serialized object - - - - Represents a triple of information used when serializing complex types: the property name, - the value to be serialized, and the value's type. - - - - - Gets the triple's key - - - - - Gets the triple's value - - - - - Gets the triple's value type - - - - - Initializes a new instance of the class. - - The triple's key - The triple's value - The triple's value type - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of and . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message to send - - - - Initializes a new instance of the class. - - The format of the message to send - The arguments used to format the message - - - - - - - - - - Default implementation of . - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - - - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - - - - Default implementation of . - - - - - Initializes a new instance of the class. - - - - - Extensions methods for . - - - - - Logs a normal-priority message. - - The logger - The message to be logged - - - - Logs a normal-priority formatted message. - - The logger - The format of the message to be logged - The format arguments - - - - Logs a normal-priority formatted message with stack frame. - - The logger - The stack frame information - The format of the message to be logged - The format arguments - - - - Logs a high-priority message. - - The logger - The message to be logged - - - - Logs a high-priority formatted message. - - The logger - The format of the message to be logged - The format arguments - - - - Logs a high-priority formatted message with stack frame. - - The logger - The stack frame information - The format of the message to be logged - The format arguments - - - - Logs a warning message. - - The logger - The message to be logged - - - - Logs a formatted warning message. - - The logger - The format of the message to be logged - The format arguments - - - - Logs a formatted warning message with stack frame. - - The logger - The stack frame information - The format of the message to be logged - The format arguments - - - - Logs an error message. - - The logger - The message to be logged - - - - Logs a formatted error message. - - The logger - The format of the message to be logged - The format arguments - - - - Logs a formatted error message with stack frame. - - The logger - The stack frame information - The format of the message to be logged - The format arguments - - - - Extension methods for . - - - - - Attempts to optimally cast a message to the given message type, using the optional hash of - interface types to improve casting performance. - - The desired destination message type. - The message to test and cast. - The implemented interfaces, if known. - The message as , or null. - - - - Handles a message of a specific type by testing it for the type, as well as verifying that there - is a registered callback; - - The message to dispatch. - The implemented interfaces, if known. - The callback to dispatch the message to. - Returns true if processing should continue; false otherwise. - - - - Extension methods for . - - - - - Provides a simulation of for , - to make it easier to directly dispatch messages from the runner. - - The message sink - The message to be dispatched - The result of calling the message sink - - - - Extension methods for and . - - - - - Starts the process of finding all tests in an assembly. - - The discoverer. - Whether to include source file information, if possible. - The message sink to report results back to. - The options used by the test framework during discovery. - - - - Starts the process of finding all tests in a class. - - The discoverer. - The fully qualified type name to find tests in. - Whether to include source file information, if possible. - The message sink to report results back to. - The options used by the test framework during discovery. - - - - Starts the process of running all the tests in the assembly. - - The executor. - The message sink to report results back to. - The options to be used during test discovery. - The options to be used during test execution. - - - - Starts the process of running selected tests in the assembly. - - The executor. - The test cases to run. - The message sink to report results back to. - The options to be used during test execution. - - - - Extension methods for reading and writing and . - - - - - Gets a flag that determines whether diagnostic messages will be emitted. - - - - - Gets a flag that determines whether internal diagnostic messages will be emitted. - - - - - Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not - set, returns the default value (false). - - - - - Gets a flag that determines whether internal diagnostic messages will be emitted. If the flag is not - set, returns the default value (false). - - - - - Gets a flag that determines the default display name format for test methods. - - - - - Gets a flag that determines the default display name format for test methods. If the flag is not present, - returns the default value (). - - - - - Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the - discovery system will return a test case for each row of test data; they are disabled, then the - discovery system will return a single test case for the theory. - - - - - Gets a flag that determines whether theories are pre-enumerated. If they enabled, then the - discovery system will return a test case for each row of test data; they are disabled, then the - discovery system will return a single test case for the theory. If the flag is not present, - returns the default value (true). - - - - - Gets a flag that determines whether xUnit.net should report test results synchronously. - - - - - Gets a flag that determines whether xUnit.net should report test results synchronously. - If the flag is not set, returns the default value (false). - - - - - Sets a flag that determines whether diagnostic messages will be emitted. - - - - - Sets a flag that determines whether internal diagnostic messages will be emitted. - - - - - Sets a flag that determines the default display name format for test methods. - - - - - Sets a flag that determines whether theories are pre-enumerated. If they enabled, then the - discovery system will return a test case for each row of test data; they are disabled, then the - discovery system will return a single test case for the theory. - - - - - Sets a flag that determines whether xUnit.net should report test results synchronously. - - - - - Gets a flag that determines whether diagnostic messages will be emitted. - - - - - Gets a flag that determines whether internal diagnostic messages will be emitted. - - - - - Gets a flag that determines whether diagnostic messages will be emitted. If the flag is not - present, returns the default value (false). - - - - - Gets a flag that determines whether internal diagnostic messages will be emitted. If the flag is not - present, returns the default value (false). - - - - - Gets a flag to disable parallelization. - - - - - Gets a flag to disable parallelization. If the flag is not present, returns the - default value (false). - - - - - Gets the maximum number of threads to use when running tests in parallel. - - - - - Gets the maximum number of threads to use when running tests in parallel. If set to 0 (or not set), - the value of is used; if set to a value less - than 0, does not limit the number of threads. - - - - - Gets a flag that determines whether xUnit.net should report test results synchronously. - - - - - Gets a flag that determines whether xUnit.net should report test results synchronously. - If the flag is not set, returns the default value (false). - - - - - Sets a flag that determines whether diagnostic messages will be emitted. - - - - - Sets a flag that determines whether internal diagnostic messages will be emitted. - - - - - Sets a flag that determines whether xUnit.net stop testing when a test fails. - - - - - Sets a flag to disable parallelization. - - - - - Sets the maximum number of threads to use when running tests in parallel. - If set to 0 (the default value), does not limit the number of threads. - - - - - Sets a flag that determines whether xUnit.net should report test results synchronously. - - - - - Rethrows an exception object without losing the existing stack trace information - - The exception to re-throw. - - For more information on this technique, see - http://www.dotnetjunkies.com/WebLog/chris.taylor/archive/2004/03/03/8353.aspx. - The remote_stack_trace string is here to support Mono. - - - - - Unwraps an exception to remove any wrappers, like . - - The exception to unwrap. - The unwrapped exception. - - - - Guard class, used for guard clauses and argument validation - - - - - - - - - - - - - - - - - Methods which help bridge and contain the differences between Type and TypeInfo. - - - - - The runtime ID associated with this group (may be empty if the group is runtime-agnostic) - - - - - Gets a list of assets provided in this runtime group - - - -