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 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 BuildEnvironmentDetectsVisualStudioByEnvironment(string visualStudioVersion, bool shouldBeValid) { using (var env = new EmptyVSEnviroment()) { env.WithEnvironment("VSINSTALLDIR", env.TempFolderRoot); env.WithEnvironment("VisualStudioVersion", visualStudioVersion); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, env.VsInstanceMock, env.EnvironmentMock, () => false); if (shouldBeValid) { BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBe(env.TempFolderRoot); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.VisualStudio); } else { // Ensure that no VS instance was found (older versions that shouldn't be discovered). BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory.ShouldBeNull(); BuildEnvironmentHelper.Instance.Mode.ShouldBe(BuildEnvironmentMode.None); } } }