Exemple #1
0
            public void Should_Omit_Platform_Property_In_Process_Arguments_If_It_Is_Null()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments("/m /v:normal /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #2
0
            public void Should_Use_Correct_Default_Target_In_Process_Arguments()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #3
0
            public void Should_Throw_If_Process_Has_A_Non_Zero_Exit_Code()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Process.GetExitCode().Returns(1);

                // When
                var result = Record.Exception(() => fixture.Run());

                // Then
                Assert.IsCakeException(result, "MSBuild: Process returned an error.");
            }
Exemple #4
0
            public void Should_Append_Platform_As_Property_To_Process_Arguments(PlatformTarget?platform, string argumentsString)
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.SetPlatformTarget(platform.Value);

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(argumentsString);
            }
Exemple #5
0
            public void Should_Throw_If_Verbosity_Is_Unknown()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.Verbosity = (Verbosity)int.MaxValue;

                // When
                var result = Record.Exception(() => fixture.Run());

                // Then
                Assert.IsCakeException(result, "Encountered unknown MSBuild build log verbosity.");
            }
Exemple #6
0
            public void Should_Set_Working_Directory()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                // When
                fixture.Run();

                // Then
                fixture.ProcessRunner.Received(1).Start(
                    Arg.Any <FilePath>(),
                    Arg.Is <ProcessSettings>(p =>
                                             p.WorkingDirectory.FullPath == "/Working"));
            }
Exemple #7
0
            public void Should_Append_Configuration_As_Property_To_Process_Arguments()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.SetConfiguration("Release");

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /p:\"Configuration\"=\"Release\" /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #8
0
            public void Should_Use_Node_Reuse_If_Specified()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.NodeReuse = true;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /nr:true /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #9
0
            public void Should_Use_Specified_Number_Of_Max_Processors()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.MaxCpuCount = 4;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m:4 /v:normal /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #10
0
            public void Should_Use_As_Many_Processors_As_Possible_If_MaxCpuCount_Is_Zero()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.MaxCpuCount = 0;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #11
0
            public void Should_Throw_If_MSBuild_Executable_Did_Not_Exist()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, false);

                fixture.Settings.PlatformTarget = PlatformTarget.x86;
                fixture.Settings.ToolVersion    = MSBuildToolVersion.NET20;

                // When
                var result = Record.Exception(() => fixture.Run());

                // Then
                Assert.IsCakeException(result, "MSBuild: Could not locate executable.");
            }
Exemple #12
0
            public void Should_Append_Correct_Verbosity(Verbosity verbosity, string expected)
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.Verbosity = verbosity;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:{0} /target:Build \"/Working/src/Solution.sln\"", expected);
            }
Exemple #13
0
            public void Should_Get_Correct_Path_To_MSBuild_Version_35(MSBuildToolVersion version, PlatformTarget target, bool is64BitOperativeSystem, string expected)
            {
                // Given
                var fixture = new MSBuildRunnerFixture(is64BitOperativeSystem, true);

                fixture.Settings.ToolVersion    = version;
                fixture.Settings.PlatformTarget = target;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedFilePath(expected);
            }
Exemple #14
0
            public void Should_Throw_If_Process_Was_Not_Started()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.ProcessRunner
                .Start(Arg.Any <FilePath>(), Arg.Any <ProcessSettings>())
                .Returns((IProcess)null);

                // When
                var result = Record.Exception(() => fixture.Run());

                // Then
                Assert.IsCakeException(result, "MSBuild: Process was not started.");
            }
Exemple #15
0
            public void Should_Append_Property_With_Multiple_Values_To_Process_Arguments()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.WithProperty("A", "B", "E");
                fixture.Settings.WithProperty("C", "D");

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /p:\"A\"=\"B\" /p:\"A\"=\"E\" /p:\"C\"=\"D\" /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #16
0
            public void Should_Append_Targets_To_Process_Arguments()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.WithTarget("A");
                fixture.Settings.WithTarget("B");

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /target:A;B \"/Working/src/Solution.sln\"");
            }
Exemple #17
0
            public void Should_Append_Property_To_Process_Arguments()
            {
                // Given
                var fixture = new MSBuildRunnerFixture(false, true);

                fixture.Settings.WithProperty("A", "B");
                fixture.Settings.WithProperty("C", "D");

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedArguments(
                    "/m /v:normal /p:A=B /p:C=D /target:Build \"/Working/src/Solution.sln\"");
            }
Exemple #18
0
            public void Should_Return_The_Highest_MSBuild_Version_If_Tool_Version_Is_Set_To_Default()
            {
                // Given
                var existingToolPaths = new DirectoryPath[] {
                    "/Windows/Microsoft.NET/Framework64/v4.0.30319",
                    "/Windows/Microsoft.NET/Framework64/v2.0.50727"
                };

                var fixture = new MSBuildRunnerFixture(existingToolPaths);

                fixture.Settings.PlatformTarget = PlatformTarget.x64;
                fixture.Settings.ToolVersion    = MSBuildToolVersion.Default;

                // When
                fixture.Run();

                // Then
                fixture.AssertReceivedFilePath("/Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe");
            }