diff --git a/src/Shared/UnitTests/TestAssemblyInfo.cs b/src/Shared/UnitTests/TestAssemblyInfo.cs
index 627aa0d465e..4884ffa8486 100644
--- a/src/Shared/UnitTests/TestAssemblyInfo.cs
+++ b/src/Shared/UnitTests/TestAssemblyInfo.cs
@@ -19,130 +19,133 @@
[assembly: AssemblyFixture(typeof(MSBuildTestEnvironmentFixture), LifetimeScope = AssemblyFixtureAttribute.Scope.Class)]
[assembly: AssemblyFixture(typeof(MSBuildTestEnvironmentFixture), LifetimeScope = AssemblyFixtureAttribute.Scope.Method)]
-public class MSBuildTestAssemblyFixture : IDisposable
+namespace Microsoft.Build.UnitTests
{
- bool _disposed;
- private TestEnvironment _testEnvironment;
-
- public MSBuildTestAssemblyFixture()
+ public class MSBuildTestAssemblyFixture : IDisposable
{
- // Set field to indicate tests are running in the TestInfo class in Microsoft.Build.Framework.
- // See the comments on the TestInfo class for an explanation of why it works this way.
- var frameworkAssembly = typeof(Microsoft.Build.Framework.ITask).Assembly;
- var testInfoType = frameworkAssembly.GetType("Microsoft.Build.Framework.TestInfo");
- var runningTestsField = testInfoType.GetField("s_runningTests", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
- runningTestsField.SetValue(null, true);
+ bool _disposed;
+ private TestEnvironment _testEnvironment;
- _testEnvironment = TestEnvironment.Create();
+ public MSBuildTestAssemblyFixture()
+ {
+ // Set field to indicate tests are running in the TestInfo class in Microsoft.Build.Framework.
+ // See the comments on the TestInfo class for an explanation of why it works this way.
+ var frameworkAssembly = typeof(Microsoft.Build.Framework.ITask).Assembly;
+ var testInfoType = frameworkAssembly.GetType("Microsoft.Build.Framework.TestInfo");
+ var runningTestsField = testInfoType.GetField("s_runningTests", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
+ runningTestsField.SetValue(null, true);
- _testEnvironment.DoNotLaunchDebugger();
+ _testEnvironment = TestEnvironment.Create();
- // Reset the VisualStudioVersion environment variable. This will be set if tests are run from a VS command prompt. However,
- // if the environment variable is set, it will interfere with tests which set the SubToolsetVersion
- // (VerifySubToolsetVersionSetByConstructorOverridable), as the environment variable would take precedence.
- _testEnvironment.SetEnvironmentVariable("VisualStudioVersion", string.Empty);
+ _testEnvironment.DoNotLaunchDebugger();
- // Prevent test assemblies from logging any performance info.
- // https://github.com/dotnet/msbuild/pull/6274
- _testEnvironment.SetEnvironmentVariable("DOTNET_PERFLOG_DIR", string.Empty);
+ // Reset the VisualStudioVersion environment variable. This will be set if tests are run from a VS command prompt. However,
+ // if the environment variable is set, it will interfere with tests which set the SubToolsetVersion
+ // (VerifySubToolsetVersionSetByConstructorOverridable), as the environment variable would take precedence.
+ _testEnvironment.SetEnvironmentVariable("VisualStudioVersion", string.Empty);
- SetDotnetHostPath(_testEnvironment);
+ // Prevent test assemblies from logging any performance info.
+ // https://github.com/dotnet/msbuild/pull/6274
+ _testEnvironment.SetEnvironmentVariable("DOTNET_PERFLOG_DIR", string.Empty);
- // Use a project-specific temporary path
- // This is so multiple test projects can be run in parallel without sharing the same temp directory
- var subdirectory = Path.GetRandomFileName();
+ SetDotnetHostPath(_testEnvironment);
- string newTempPath = Path.Combine(Path.GetTempPath(), subdirectory);
- var assemblyTempFolder = _testEnvironment.CreateFolder(newTempPath);
+ // Use a project-specific temporary path
+ // This is so multiple test projects can be run in parallel without sharing the same temp directory
+ var subdirectory = Path.GetRandomFileName();
- _testEnvironment.SetTempPath(assemblyTempFolder.Path);
+ string newTempPath = Path.Combine(Path.GetTempPath(), subdirectory);
+ var assemblyTempFolder = _testEnvironment.CreateFolder(newTempPath);
- _testEnvironment.CreateFile(
- transientTestFolder: assemblyTempFolder,
- fileName: "MSBuild_Tests.txt",
- contents: $"Temporary test folder for tests from {AppContext.BaseDirectory}");
+ _testEnvironment.SetTempPath(assemblyTempFolder.Path);
- // Ensure that we stop looking for a D.B.rsp at the root of the test temp
- _testEnvironment.CreateFile(
- transientTestFolder: assemblyTempFolder,
- fileName: "Directory.Build.rsp",
- contents: string.Empty);
+ _testEnvironment.CreateFile(
+ transientTestFolder: assemblyTempFolder,
+ fileName: "MSBuild_Tests.txt",
+ contents: $"Temporary test folder for tests from {AppContext.BaseDirectory}");
- _testEnvironment.CreateFile(
- transientTestFolder: assemblyTempFolder,
- fileName: "Directory.Build.props",
- contents: "");
+ // Ensure that we stop looking for a D.B.rsp at the root of the test temp
+ _testEnvironment.CreateFile(
+ transientTestFolder: assemblyTempFolder,
+ fileName: "Directory.Build.rsp",
+ contents: string.Empty);
- _testEnvironment.CreateFile(
- transientTestFolder: assemblyTempFolder,
- fileName: "Directory.Build.targets",
- contents: "");
- }
+ _testEnvironment.CreateFile(
+ transientTestFolder: assemblyTempFolder,
+ fileName: "Directory.Build.props",
+ contents: "");
- ///
- /// Find correct version of "dotnet", and set DOTNET_HOST_PATH so that the Roslyn tasks will use the right host
- ///
- ///
- private static void SetDotnetHostPath(TestEnvironment testEnvironment)
- {
- var currentFolder = AppContext.BaseDirectory;
+ _testEnvironment.CreateFile(
+ transientTestFolder: assemblyTempFolder,
+ fileName: "Directory.Build.targets",
+ contents: "");
+ }
- while (currentFolder != null)
+ ///
+ /// Find correct version of "dotnet", and set DOTNET_HOST_PATH so that the Roslyn tasks will use the right host
+ ///
+ ///
+ private static void SetDotnetHostPath(TestEnvironment testEnvironment)
{
- string potentialVersionsPropsPath = Path.Combine(currentFolder, "build", "Versions.props");
- if (FileSystems.Default.FileExists(potentialVersionsPropsPath))
+ var currentFolder = AppContext.BaseDirectory;
+
+ while (currentFolder != null)
{
- var doc = XDocument.Load(potentialVersionsPropsPath);
- var ns = doc.Root.Name.Namespace;
- var cliVersionElement = doc.Root.Elements(ns + "PropertyGroup").Elements(ns + "DotNetCliVersion").FirstOrDefault();
- if (cliVersionElement != null)
+ string potentialVersionsPropsPath = Path.Combine(currentFolder, "build", "Versions.props");
+ if (FileSystems.Default.FileExists(potentialVersionsPropsPath))
{
- string cliVersion = cliVersionElement.Value;
- string dotnetPath = Path.Combine(currentFolder, "artifacts", ".dotnet", cliVersion, "dotnet");
-
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ var doc = XDocument.Load(potentialVersionsPropsPath);
+ var ns = doc.Root.Name.Namespace;
+ var cliVersionElement = doc.Root.Elements(ns + "PropertyGroup").Elements(ns + "DotNetCliVersion").FirstOrDefault();
+ if (cliVersionElement != null)
{
- dotnetPath += ".exe";
+ string cliVersion = cliVersionElement.Value;
+ string dotnetPath = Path.Combine(currentFolder, "artifacts", ".dotnet", cliVersion, "dotnet");
+
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ dotnetPath += ".exe";
+ }
+
+ testEnvironment.SetEnvironmentVariable("DOTNET_HOST_PATH", dotnetPath);
}
- testEnvironment.SetEnvironmentVariable("DOTNET_HOST_PATH", dotnetPath);
+ break;
}
- break;
+ currentFolder = Directory.GetParent(currentFolder)?.FullName;
}
-
- currentFolder = Directory.GetParent(currentFolder)?.FullName;
}
- }
- public void Dispose()
- {
- if (!_disposed)
+ public void Dispose()
{
- _testEnvironment.Dispose();
+ if (!_disposed)
+ {
+ _testEnvironment.Dispose();
- _disposed = true;
+ _disposed = true;
+ }
}
}
-}
-public class MSBuildTestEnvironmentFixture : IDisposable
-{
- bool _disposed;
- private TestEnvironment _testEnvironment;
-
- public MSBuildTestEnvironmentFixture()
+ public class MSBuildTestEnvironmentFixture : IDisposable
{
- _testEnvironment = TestEnvironment.Create();
- }
+ bool _disposed;
+ private TestEnvironment _testEnvironment;
- public void Dispose()
- {
- if (!_disposed)
+ public MSBuildTestEnvironmentFixture()
+ {
+ _testEnvironment = TestEnvironment.Create();
+ }
+
+ public void Dispose()
{
- _testEnvironment.Dispose();
+ if (!_disposed)
+ {
+ _testEnvironment.Dispose();
- _disposed = true;
+ _disposed = true;
+ }
}
}
}