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 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 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 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 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 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 EmptyBuildEnviroment()) { // This test has no context to find MSBuild other than Visual Studio root. BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull, () => new List <VisualStudioInstance> { new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0")), new VisualStudioInstance("VS", env.TempFolderRoot, new Version("15.0")), }); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); } }
public void BuildEnvironmentVisualStudioNotFoundWhenVersionMismatch() { using (var env = new EmptyBuildEnviroment()) { // This test has no context to find MSBuild other than Visual Studio root. Assert.Throws <InvalidOperationException>(() => { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull, () => new List <VisualStudioInstance> { new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0")), new VisualStudioInstance("VS", env.TempFolderRoot, new Version("14.0")), }); }); } }
public void FindBuildEnvironmentByEnvironmentVariable() { using (var env = new EmptyBuildEnviroment()) { var path = env.BuildDirectory; var msBuildPath = Path.Combine(path, "msbuild.exe"); var msBuildConfig = Path.Combine(path, "msbuild.exe.config"); Environment.SetEnvironmentVariable("MSBUILD_EXE_PATH", env.MSBuildExePath); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull); Assert.Equal(path, BuildEnvironmentHelper.Instance.CurrentMSBuildToolsDirectory); Assert.Equal(msBuildPath, BuildEnvironmentHelper.Instance.CurrentMSBuildExePath); Assert.Equal(msBuildConfig, BuildEnvironmentHelper.Instance.CurrentMSBuildConfigurationFile); Assert.False(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.False(BuildEnvironmentHelper.Instance.RunningTests); } }
public void FindBuildEnvironmentByEnvironmentVariable() { using (var env = new EmptyBuildEnviroment()) { var path = env.BuildDirectory; var msBuildPath = Path.Combine(path, "msbuild.exe"); var msBuildConfig = Path.Combine(path, "msbuild.exe.config"); Environment.SetEnvironmentVariable("MSBUILD_EXE_PATH", env.MSBuildExePath); BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull); Assert.Equal(path, BuildEnvironmentHelper.Instance.CurrentMSBuildToolsDirectory); Assert.Equal(msBuildPath, BuildEnvironmentHelper.Instance.CurrentMSBuildExePath); Assert.Equal(msBuildConfig, BuildEnvironmentHelper.Instance.CurrentMSBuildConfigurationFile); Assert.False(BuildEnvironmentHelper.Instance.RunningInVisualStudio); Assert.False(BuildEnvironmentHelper.Instance.RunningTests); } }
public void BuildEnvironmentDetectsVisualStudioFromSetupInstance() { using (var env = new EmptyBuildEnviroment()) { // This test has no context to find MSBuild other than Visual Studio root. BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull, () => new List<VisualStudioInstance> { new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0")), new VisualStudioInstance("VS", env.TempFolderRoot, new Version("15.0")), }); Assert.Equal(env.TempFolderRoot, BuildEnvironmentHelper.Instance.VisualStudioInstallRootDirectory); } }
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 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 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 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 BuildEnvironmentVisualStudioNotFoundWhenVersionMismatch() { using (var env = new EmptyBuildEnviroment()) { // This test has no context to find MSBuild other than Visual Studio root. Assert.Throws<InvalidOperationException>(() => { BuildEnvironmentHelper.ResetInstance_ForUnitTestsOnly(ReturnNull, ReturnNull, ReturnNull, ReturnNull, () => new List<VisualStudioInstance> { new VisualStudioInstance("Invalid path", @"c:\_doesnotexist", new Version("15.0")), new VisualStudioInstance("VS", env.TempFolderRoot, new Version("14.0")), }); }); } }
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); } }