예제 #1
0
            public void Should_Not_Append_SummaryOutputLevel_If_Default()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    SummaryOutputLevel = MSBuildLoggerOutputLevel.Default
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild", result.Args);
            }
예제 #2
0
            public void Should_Append_HideItemAndPropertyList_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    HideItemAndPropertyList = true
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:NoItemAndPropertyList", result.Args);
            }
예제 #3
0
            public void Should_Append_PerformanceSummary_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    PerformanceSummary = true
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:PerformanceSummary", result.Args);
            }
예제 #4
0
            public void Should_Append_SummaryOutputLevel_If_Specified(MSBuildLoggerOutputLevel outputLevel)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    SummaryOutputLevel = outputLevel
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal($"msbuild /fileLogger /fileloggerparameters:{outputLevel}", result.Args);
            }
예제 #5
0
            public void Should_Throw_If_Logger_Has_No_Assembly_Value(string loggerAssembly)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.Loggers.Add(new MSBuildLogger {
                    Assembly = loggerAssembly
                });

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

                // Then
                AssertEx.IsArgumentNullException(result, "Assembly");
            }
예제 #6
0
            public void Should_Append_LogFile_If_Empty()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    LogFile = string.Empty
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:LogFile=\"\"", result.Args);
            }
예제 #7
0
            public void Should_Add_FileLogger_Arguments()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    AppendToLogFile = false, PerformanceSummary = true, Verbosity = DotNetCoreVerbosity.Diagnostic
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(@"msbuild /fileLogger /fileloggerparameters:PerformanceSummary;Verbosity=Diagnostic", result.Args);
            }
예제 #8
0
            public void Should_Add_Logger_Argument()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.Loggers.Add(new MSBuildLogger {
                    Assembly = "A"
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /logger:\"A\"", result.Args);
            }
예제 #9
0
            public void Should_Throw_If_ToolVersion_Is_Invalid(int toolVersion)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.ToolVersion = (MSBuildVersion)toolVersion;

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

                // Then
                Assert.IsType <ArgumentOutOfRangeException>(result);
                Assert.Equal("toolVersion", ((ArgumentOutOfRangeException)result)?.ParamName);
                Assert.Equal(toolVersion, (int)((ArgumentOutOfRangeException)result)?.ActualValue);
            }
예제 #10
0
            public void Should_Throw_If_Settings_Are_Null()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Project  = "./src/*";
                fixture.Settings = null;
                fixture.GivenDefaultToolDoNotExist();

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

                // Then
                AssertEx.IsArgumentNullException(result, "settings");
            }
예제 #11
0
            public void Should_Append_Verbosity_If_Specified(DotNetCoreVerbosity verbosity)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    Verbosity = verbosity
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal($"msbuild /fileLogger /fileloggerparameters:Verbosity={verbosity}", result.Args);
            }
예제 #12
0
            public void Should_Append_DisableMultiprocessorLogging_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    DisableMultiprocessorLogging = true
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:DisableMPLogging", result.Args);
            }
예제 #13
0
            public void Should_Append_ForceNoAlign_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    ForceNoAlign = true
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:ForceNoAlign", result.Args);
            }
예제 #14
0
            public void Should_Append_ForceConsoleColor_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    ConsoleColorType = MSBuildConsoleColorType.ForceAnsi
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:ForceConsoleColor", result.Args);
            }
예제 #15
0
            public void Should_Append_DisableConsoleColor_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.ConsoleLoggerSettings = new MSBuildLoggerSettings
                {
                    ConsoleColorType = MSBuildConsoleColorType.Disabled
                };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /consoleloggerparameters:DisableConsoleColor", result.Args);
            }
예제 #16
0
            public void Should_Append_LogFile_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings
                {
                    LogFile = "msbuild.log"
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /fileLogger /fileloggerparameters:LogFile=\"/Working/msbuild.log\"", result.Args);
            }
예제 #17
0
            public void Should_Throw_If_Process_Has_A_Non_Zero_Exit_Code()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture()
                {
                    Project = "./src/*"
                };

                fixture.GivenProcessExitsWithCode(1);

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

                // Then
                AssertEx.IsCakeException(result, ".NET Core CLI: Process returned an error (exit code 1).");
            }
예제 #18
0
            public void Should_Append_ShowEventId_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.ConsoleLoggerSettings = new MSBuildLoggerSettings
                {
                    ShowEventId = true
                };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /consoleloggerparameters:ShowEventId", result.Args);
            }
예제 #19
0
            public void Should_Append_FileEncoding_If_Specified()
            {
                // Given
                const string fileEncoding = "UTF8";
                var          fixture      = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings {
                    FileEncoding = fileEncoding
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal($"msbuild /fileLogger /fileloggerparameters:Encoding={fileEncoding}", result.Args);
            }
예제 #20
0
            public void Should_Throw_If_Process_Was_Not_Started()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture()
                {
                    Project  = "./src/*",
                    Settings = new DotNetCoreMSBuildSettings()
                };

                fixture.GivenProcessCannotStart();

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

                // Then
                AssertEx.IsCakeException(result, ".NET Core CLI: Process was not started.");
            }
예제 #21
0
            public void Should_Add_WarnAsMessage_Argument(MSBuildTreatAllWarningsAs treatAllWarningsAs, string[] errorCodes, string expectedValue)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.TreatAllWarningsAs = treatAllWarningsAs;

                foreach (var errorCode in errorCodes)
                {
                    fixture.Settings.WarningCodesAsMessage.Add(errorCode);
                }

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal($"msbuild /warnasmessage{expectedValue}", result.Args);
            }
예제 #22
0
            public void Should_Add_ConsoleLoggerParameters_If_Specified()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.ConsoleLoggerSettings = new MSBuildLoggerSettings
                {
                    PerformanceSummary = true,
                    SummaryOutputLevel = MSBuildLoggerOutputLevel.ErrorsOnly,
                    Verbosity          = DotNetCoreVerbosity.Diagnostic
                };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /consoleloggerparameters:PerformanceSummary;ErrorsOnly;Verbosity=Diagnostic", result.Args);
            }
            public void Should_Append_Binary_Logging_If_Specified(bool enabled, string fileName, MSBuildBinaryLoggerImports imports, string args)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.BinaryLogger = new MSBuildBinaryLoggerSettings
                {
                    Enabled  = enabled,
                    FileName = fileName,
                    Imports  = imports
                };

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal(args, result.Args);
            }
예제 #24
0
            public void Should_Add_Multiple_Logger_Arguments_When_Multiple_Values()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.Loggers.Add(new MSBuildLogger {
                    Assembly = "A"
                });
                fixture.Settings.Loggers.Add(new MSBuildLogger {
                    Class = "C", Assembly = "B"
                });
                fixture.Settings.Loggers.Add(new MSBuildLogger {
                    Class = "E", Assembly = "F", Parameters = "g"
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /logger:\"A\" /logger:C,B /logger:E,F;g", result.Args);
            }
예제 #25
0
            public void Should_Throw_If_DistributedLogger_Has_No_Assembly_Value(string centralLoggerAssembly, string forwardingLoggerAssembly)
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.DistributedLoggers.Add(new MSBuildDistributedLogger
                {
                    CentralLogger = new MSBuildLogger {
                        Assembly = centralLoggerAssembly
                    },
                    ForwardingLogger = new MSBuildLogger {
                        Assembly = forwardingLoggerAssembly
                    }
                });

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

                // Then
                AssertEx.IsArgumentNullException(result, "Assembly");
            }
예제 #26
0
            public void Should_Add_DistributedLogger_Argument()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.DistributedLoggers.Add(new MSBuildDistributedLogger
                {
                    CentralLogger = new MSBuildLogger {
                        Assembly = "A"
                    },
                    ForwardingLogger = new MSBuildLogger {
                        Assembly = "B"
                    }
                });

                // When
                var result = fixture.Run();

                // Then
                Assert.Equal("msbuild /distributedlogger:\"A\"*\"B\"", result.Args);
            }
예제 #27
0
            public void Should_Throw_Exception_For_Too_Many_FileLoggers()
            {
                // Given
                var fixture = new DotNetCoreMSBuildBuilderFixture();

                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());
                fixture.Settings.FileLoggers.Add(new MSBuildFileLoggerSettings());

                // When
                var ex = Assert.Throws <InvalidOperationException>(() => fixture.Run());

                // Then
                Assert.Equal(@"Too Many FileLoggers", ex.Message);
            }