public void FindOlderVisualStudioEnvironmentByEnvironmentVariable(bool is64BitMSbuild) { using (var env = new EmptyVSEnviroment("15.0")) { var msbuildBinDirectory = is64BitMSbuild ? Path.Combine(env.BuildDirectory, "amd64") : env.BuildDirectory; var msBuildPath = Path.Combine(msbuildBinDirectory, MSBuildExeName); var msBuildConfig = Path.Combine(msbuildBinDirectory, $"{MSBuildExeName}.config"); var vsMSBuildDirectory = Path.Combine(env.TempFolderRoot, "MSBuild"); env.WithEnvironment("MSBUILD_EXE_PATH", msBuildPath); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); BuildEnvironmentHelper.Instance.MSBuildExtensionsPath.ShouldBe(vsMSBuildDirectory); BuildEnvironmentHelper.Instance.CurrentMSBuildToolsDirectory.ShouldBe(msbuildBinDirectory); BuildEnvironmentHelper.Instance.CurrentMSBuildExePath.ShouldBe(msBuildPath); BuildEnvironmentHelper.Instance.CurrentMSBuildConfigurationFile.ShouldBe(msBuildConfig); // This code is not running inside the Visual Studio devenv.exe process BuildEnvironmentHelper.Instance.RunningInVisualStudio.ShouldBeFalse(); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.RunningTests.ShouldBeFalse(); } }
public void TargetPathAlreadySet_DisabledUnderChangeWave16_10(string targetPath) { using TestEnvironment env = TestEnvironment.Create(); string link = "c:/some/path"; ChangeWaves.ResetStateForTests(); env.SetEnvironmentVariable("MSBUILDDISABLEFEATURESFROMVERSION", ChangeWaves.Wave16_10.ToString()); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); AssignTargetPath t = new AssignTargetPath(); t.BuildEngine = new MockEngine(); Dictionary <string, string> metaData = new Dictionary <string, string>(); metaData.Add("TargetPath", targetPath); metaData.Add("Link", link); t.Files = new ITaskItem[] { new TaskItem( itemSpec: NativeMethodsShared.IsWindows ? @"c:\f1\f2\file.txt" : "/f1/f2/file.txt", itemMetadata: metaData) }; t.RootFolder = NativeMethodsShared.IsWindows ? @"c:\f1\f2" : "/f1/f2"; t.Execute().ShouldBeTrue(); t.AssignedFiles.Length.ShouldBe(1); t.AssignedFiles[0].GetMetadata("TargetPath").ShouldBe(link); ChangeWaves.ResetStateForTests(); }
public void FindBuildEnvironmentThrowsWhenNotAvailable() { using (new EmptyBuildEnviroment()) { Assert.Throws <InvalidOperationException>(() => BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull)); } }
public void NoChangeWaveSetMeansAllChangeWavesAreEnabled(string featureWave) { using (TestEnvironment env = TestEnvironment.Create()) { ChangeWaves.ResetStateForTests(); ChangeWaves.AreFeaturesEnabled(featureWave).ShouldBe(true); string projectFile = $"" + $"<Project>" + $"<Target Name='HelloWorld' Condition=\"'$(MSBUILDDISABLEFEATURESFROMVERSION)' == '{ChangeWaves.EnableAllFeatures}' and $([MSBuild]::AreFeaturesEnabled('{featureWave}'))\">" + $"<Message Text='Hello World!'/>" + $"</Target>" + $"</Project>"; TransientTestFile file = env.CreateFile("proj.csproj", projectFile); ProjectCollection collection = new ProjectCollection(); MockLogger log = new MockLogger(); collection.RegisterLogger(log); collection.LoadProject(file.Path).Build().ShouldBeTrue(); log.AssertLogContains("Hello World!"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); } }
public void CorrectlyDetermineDisabledFeatures() { using (TestEnvironment env = TestEnvironment.Create()) { env.SetChangeWave(ChangeWaves.LowestWave); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); foreach (string wave in ChangeWaves.AllWaves) { ChangeWaves.AreFeaturesEnabled(wave).ShouldBeFalse(); string projectFile = $"" + $"<Project>" + $"<Target Name='HelloWorld' Condition=\"$([MSBuild]::AreFeaturesEnabled('{wave}')) == false\">" + $"<Message Text='Hello World!'/>" + $"</Target>" + $"</Project>"; TransientTestFile file = env.CreateFile("proj.csproj", projectFile); ProjectCollection collection = new ProjectCollection(); MockLogger log = new MockLogger(); collection.RegisterLogger(log); Project p = collection.LoadProject(file.Path); p.Build().ShouldBeTrue(); log.AssertLogContains("Hello World!"); } BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); } }
public void VersionSetToValidValueButInvalidVersionSetsNextVersion() { using (TestEnvironment env = TestEnvironment.Create()) { env.SetChangeWave($"{ChangeWaves.LowestWaveAsVersion.Major}.{ChangeWaves.LowestWaveAsVersion.Minor}.{ChangeWaves.LowestWaveAsVersion.Build+1}"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); // All waves should be disabled string projectFile = $"" + $"<Project>" + $"<Target Name='HelloWorld' Condition=\"'$(MSBUILDDISABLEFEATURESFROMVERSION)' == '{ChangeWaves.AllWaves[1]}' and $([MSBuild]::AreFeaturesEnabled('{ChangeWaves.LowestWave}'))\">" + $"<Message Text='Hello World!'/>" + $"</Target>" + $"</Project>"; TransientTestFile file = env.CreateFile("proj.csproj", projectFile); ProjectCollection collection = new ProjectCollection(); MockLogger log = new MockLogger(); collection.RegisterLogger(log); Project p = collection.LoadProject(file.Path); p.Build().ShouldBeTrue(); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); log.AssertLogContains("Hello World!"); } }
public void VersionTooHighClampsToHighestVersionInRotation(string disableFromWave) { using (TestEnvironment env = TestEnvironment.Create()) { env.SetChangeWave(disableFromWave); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); // all waves but the highest should pass for (int i = 0; i < ChangeWaves.AllWaves.Length - 1; i++) { ChangeWaves.ResetStateForTests(); string projectFile = $"" + $"<Project>" + $"<Target Name='HelloWorld' Condition=\"'$(MSBUILDDISABLEFEATURESFROMVERSION)' == '{ChangeWaves.HighestWave}' and $([MSBuild]::AreFeaturesEnabled('{ChangeWaves.AllWaves[i]}'))\">" + $"<Message Text='Hello World!'/>" + $"</Target>" + $"</Project>"; TransientTestFile file = env.CreateFile("proj.csproj", projectFile); ProjectCollection collection = new ProjectCollection(); MockLogger log = new MockLogger(); collection.RegisterLogger(log); Project p = collection.LoadProject(file.Path); p.Build().ShouldBeTrue(); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); log.WarningCount.ShouldBe(1); log.AssertLogContains("out of rotation"); log.AssertLogContains("Hello World!"); } } }
public void InvalidCallerForIsFeatureEnabledThrows(string waveToCheck) { using (TestEnvironment env = TestEnvironment.Create()) { env.SetChangeWave("16.8"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); Shouldly.Should.Throw <InternalErrorException>(() => ChangeWaves.AreFeaturesEnabled(waveToCheck)); } }
public void BuildEnvironmentDetectsVisualStudioByBlendProcess() { using (var env = new EmptyBuildEnviroment()) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.BlendPath, ReturnNull, () => env.MSBuildExePath, ReturnNull); Assert.True(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); } }
public void BuildEnvironmentDetectsVisualStudioByMSBuildProcessAmd64() { using (var env = new EmptyBuildEnviroment()) { // We only know we're in amd64\msbuild.exe, we should still be able to attempt to find Visual Studio BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.MSBuildExePath64, ReturnNull, ReturnNull, ReturnNull); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); } }
public void BuildEnvironmentDetectsVisualStudioByMSBuildProcessAmd64() { using (var env = new EmptyVSEnviroment()) { // We only know we're in amd64\msbuild.exe, we should still be able to attempt to find Visual Studio BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.MSBuildExePath64, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }
public void Dispose() { FileUtilities.DeleteDirectoryNoThrow(TempFolderRoot, true); foreach (var env in _originalEnvironment) { Environment.SetEnvironmentVariable(env.Key, env.Value); } BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); }
public void BuildEnvironmentFindsAmd64RunningInAmd64() { using (var env = new EmptyBuildEnviroment()) { Environment.SetEnvironmentVariable("MSBUILD_EXE_PATH", env.MSBuildExePath64); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull); Assert.Equal(env.BuildDirectory, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32); Assert.Equal(env.BuildDirectory64, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64); } }
public void BuildEnvironmentDetectsVisualStudioByEnvironment() { using (var env = new EmptyBuildEnviroment()) { Environment.SetEnvironmentVariable("VSINSTALLDIR", env.TempFolderRoot); Environment.SetEnvironmentVariable("VisualStudioVersion", "15.0"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); } }
public void BuildEnvironmentDetectsVisualStudioByProcessName() { using (var env = new EmptyVSEnviroment()) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.DevEnvPath, () => env.MSBuildExePath, ReturnNull, env.VsInstanceMock, env.EnvironmentMock); Assert.True(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); Assert.Equal(BuildEnvironmentMode.VisualStudio, BuildEnvironmentHelper.Instance.Mode); } }
public void BuildEnvironmentDetectsVisualStudioByBlendProcess() { using (var env = new EmptyVSEnviroment()) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.BlendPath, () => env.MSBuildExePath, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.RunningInVisualStudio.ShouldBeTrue(); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }
public void BuildEnvironmentDetectsVisualStudioByEnvironment() { using (var env = new EmptyVSEnviroment()) { env.WithEnvironment("VSINSTALLDIR", env.TempFolderRoot); env.WithEnvironment("VisualStudioVersion", "15.0"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); Assert.Equal(BuildEnvironmentMode.VisualStudio, BuildEnvironmentHelper.Instance.Mode); } }
public void BuildEnvironmentDetectsVisualStudioByEnvironment() { using (var env = new EmptyVSEnviroment()) { env.WithEnvironment("VSINSTALLDIR", env.TempFolderRoot); env.WithEnvironment("VisualStudioVersion", MSBuildConstants.CurrentVisualStudioVersion); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }
public void EndToEndMultilineExec_EscapeSpecialCharacters_DisabledUnderChangeWave16_10() { using (var env = TestEnvironment.Create(_output)) { ChangeWaves.ResetStateForTests(); env.SetEnvironmentVariable("MSBUILDDISABLEFEATURESFROMVERSION", ChangeWaves.Wave16_10.ToString()); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(); var testProject = env.CreateTestProjectWithFiles(@"<Project> <Target Name=""ExecCommand""> <Exec Command=""echo Hello, World!"" /> </Target> </Project>"); // Ensure path has subfolders var newTempPath = env.CreateNewTempPathWithSubfolder("hello()wo(rld)").TempPath; string tempPath = Path.GetTempPath(); Assert.StartsWith(newTempPath, tempPath); using (var buildManager = new BuildManager()) { MockLogger logger = new MockLogger(_output, profileEvaluation: false, printEventsToStdout: false); var parameters = new BuildParameters() { Loggers = new[] { logger }, }; var collection = new ProjectCollection( new Dictionary <string, string>(), new[] { logger }, remoteLoggers: null, ToolsetDefinitionLocations.Default, maxNodeCount: 1, onlyLogCriticalEvents: false, loadProjectsReadOnly: true); var project = collection.LoadProject(testProject.ProjectFile).CreateProjectInstance(); var request = new BuildRequestData( project, targetsToBuild: new[] { "ExecCommand" }, hostServices: null); var result = buildManager.Build(parameters, request); logger.AssertLogContains("Hello, World!"); result.OverallResult.ShouldBe(BuildResultCode.Failure); } ChangeWaves.ResetStateForTests(); } }
public void BuildEnvironmentFindsAmd64NoVS() { using (var env = new EmptyStandaloneEnviroment(MSBuildExeName, writeFakeFiles: true, includeAmd64Folder: true)) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.MSBuildExePath, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32.ShouldBe(env.BuildDirectory); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64.ShouldBe(Path.Combine(env.BuildDirectory, "amd64")); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.Standalone); } }
public void BuildEnvironmentFindsAmd64RunningInAmd64() { using (var env = new EmptyVSEnviroment()) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.MSBuildExePath64, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32.ShouldBe(env.BuildDirectory); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64.ShouldBe(env.BuildDirectory64); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }
public void BuildEnvironmentFindsAmd64() { using (var env = new EmptyVSEnviroment()) { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.DevEnvPath, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock); Assert.Equal(env.BuildDirectory, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32); Assert.Equal(env.BuildDirectory64, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64); Assert.Equal(BuildEnvironmentMode.VisualStudio, BuildEnvironmentHelper.Instance.Mode); } }
public void FindBuildEnvironmentFromRunningProcess() { using (var env = new EmptyBuildEnviroment()) { // All we know about is path to msbuild.exe as the current process BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, () => env.MSBuildExePath, ReturnNull, ReturnNull); Assert.Equal(env.BuildDirectory, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32); Assert.Equal(env.BuildDirectory64, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64); Assert.False(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.False(BuildEnvironmentHelper.Instance.RunningTests); } }
public void FindBuildEnvironmentFromCommandLineVisualStudio() { using (var env = new EmptyVSEnviroment()) { // All we know about is path to msbuild.exe as the command-line arg[0] BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.MSBuildExePath, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32.ShouldBe(env.BuildDirectory); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64.ShouldBe(env.BuildDirectory64); BuildEnvironmentHelper.Instance.RunningInVisualStudio.ShouldBeFalse(); BuildEnvironmentHelper.Instance.RunningTests.ShouldBeFalse(); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }
public void BuildEnvironmentNoneWhenNotAvailable() { using (var env = new EmptyStandaloneEnviroment(MSBuildExeName)) { var entryProcess = Path.Combine(Path.GetTempPath(), "foo.exe"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => entryProcess, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.CurrentMSBuildExePath.ShouldBe(entryProcess); BuildEnvironmentHelper.Instance.CurrentMSBuildToolsDirectory.ShouldBe(Path.GetDirectoryName(entryProcess)); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBeNull(); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.None); } }
public void BuildEnvironmentFindsAmd64RunningInAmd64NoVS() { using (var env = new EmptyStandaloneEnviroment(MSBuildExeName, writeFakeFiles: true, includeAmd64Folder: true)) { var msBuild64Exe = Path.Combine(env.BuildDirectory, "amd64", MSBuildExeName); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => msBuild64Exe, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32.ShouldBe(env.BuildDirectory); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64.ShouldBe(Path.Combine(env.BuildDirectory, "amd64")); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBeNull(); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.Standalone); } }
public void BuildEnvironmentVisualStudioNotFoundWhenVersionMismatch() { using (var env = new EmptyVSEnviroment()) { env.WithVsInstance(new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0"))); env.WithVsInstance(new VisualStudioInstance("VS", env.TempFolderRoot, new Version("14.0"))); // This test has no context to find MSBuild other than Visual Studio root. BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBeNull(); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.None); } }
public void FindBuildEnvironmentFromVisualStudioRoot() { using (var env = new EmptyBuildEnviroment()) { // All we know about is path to DevEnv.exe BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(() => env.DevEnvPath, ReturnNull, ReturnNull, ReturnNull); Assert.Equal(env.BuildDirectory, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32); Assert.Equal(env.BuildDirectory64, BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); Assert.True(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.False(BuildEnvironmentHelper.Instance.RunningTests); } }
public void BuildEnvironmentDetectsVisualStudioFromSetupInstance() { using (var env = new EmptyVSEnviroment()) { env.WithVsInstance(new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0"))); env.WithVsInstance(new VisualStudioInstance("VS", env.TempFolderRoot, new Version("15.0"))); // This test has no context to find MSBuild other than Visual Studio root. BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); Assert.Equal(BuildEnvironmentMode.VisualStudio, BuildEnvironmentHelper.Instance.Mode); } }
public void BuildEnvironmentVSFromMSBuildAssemblyAmd64() { using (var env = new EmptyVSEnviroment()) { var msBuildAssembly = Path.Combine(env.BuildDirectory64, "Microsoft.Build.dll"); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, () => msBuildAssembly, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory32.ShouldBe(env.BuildDirectory); BuildEnvironmentHelper.Instance.MSBuildToolsDirectory64.ShouldBe(env.BuildDirectory64); BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } }