static int Main(string[] _args) { CommandLineArgs args = CommandLineArgumentParser.Parse(_args); var host = new CakeHost(); host.UseContext <BuildContext>(); host.ConfigureServices((config) => { config.AddSingleton(args); } ); // Needed when using Visual Studio built-in code coverage tools host.InstallTool(new Uri("nuget:?package=Microsoft.CodeCoverage&version=17.0.0")); // Needed when using .ReportGenerator(...) call host.InstallTool(new Uri("nuget:?package=ReportGenerator&version=5.0.0")); // Needed for uploading coverage test result to coveralls.io host.InstallTool(new Uri("nuget:?package=coveralls.io&version=1.4.2")); //host.InstallTool(new Uri("nuget:?package=coveralls.io&version=1.1.86")); // Can be also installed globally // dotnet tool install --global coverlet.console --version 3.1.0 host.InstallTool(new Uri("dotnet:?package=coverlet.console&version=3.1.0")); host.InstallTool(new Uri("nuget:?package=NUnit.ConsoleRunner&version=3.13.0")); //host.InstallTool(new Uri("nuget:?package=coveralls.io&version=1.1.86")); //host.InstallTool(new Uri("nuget:?package=ReportGenerator&version=5.0.0")); return(host.Run(args.GetCakeArgs())); }
public CakeHostFixture() { Host = new CakeHost(); Environment = FakeEnvironment.CreateUnixEnvironment(); Console = new FakeConsole(); Log = Substitute.For <ICakeLog>(); Installer = Substitute.For <IToolInstaller>(); FileSystem = new FakeFileSystem(Environment); FileSystem.CreateDirectory("/Working"); }
public static int TryRunCake(string[] args) { DirectoryPath testDir = new DirectoryPath(TestContext.CurrentContext.TestDirectory); DirectoryPath testRoot = testDir.Combine( new DirectoryPath( "../" + // app "../" + // Debug ".." // bin ) ); int exitCode = new CakeHost() .UseWorkingDirectory(testRoot) .AddAssembly(typeof(CakeFrostingRunner).Assembly) .Run(args); return(exitCode); }
static int Main(string[] _args) { var host = new CakeHost(); host.UseContext <BuildContext>(); //host.InstallTool(new Uri("dotnet:?package=coverlet.console&version=3.1.0")); // Needed when using Visual Studio built-in code coverage tools host.InstallTool(new Uri("nuget:?package=Microsoft.CodeCoverage&version=17.0.0")); // Needed when using .ReportGenerator(...) call host.InstallTool(new Uri("nuget:?package=ReportGenerator&version=5.0.0")); List <String> args = _args.ToList(); if (args.Contains("--show")) { args.Remove("--show"); args.Add("--Settings_ShowProcessCommandLine"); args.Add("true"); } return(host.Run(args.ToArray())); }
public static string RunTask(string globString, CakeLicenseHeaderUpdaterSettings settings) { List <string> arguments = new List <string> { $@"--target=""{TaskRunner.TaskName}""", $@"--files=""{globString}""", // Need the "my_" in front because otherwise Cake things its the dry run for *it* // not for us. $@"--my_{nameof( CakeLicenseHeaderUpdaterSettings.DryRun )}=""{settings.DryRun}""" }; if (string.IsNullOrEmpty(settings.LicenseString) == false) { arguments.Add( $@"--{nameof( CakeLicenseHeaderUpdaterSettings.LicenseString )}=""{settings.LicenseString}""" ); } if (settings.OldHeaderRegexPatterns.Count > TaskRunner.MaximumRegexes) { throw new ArgumentException( $"{nameof( CakeLicenseHeaderUpdaterSettings.OldHeaderRegexPatterns )} can not contain more than {TaskRunner.MaximumRegexes} elements" ); } for (int i = 1; i <= settings.OldHeaderRegexPatterns.Count; ++i) { string argName = $"{nameof( CakeLicenseHeaderUpdaterSettings.OldHeaderRegexPatterns )}_{i}"; arguments.Add($@"--{argName}=""{settings.OldHeaderRegexPatterns[i - 1]}"""); } StringBuilder builder = new StringBuilder(); arguments.ForEach(a => builder.Append(a + ", ")); Console.WriteLine("Sending arguments: " + builder); Console.WriteLine(); int exitCode; string stdOut; using (StringWriter writer = new StringWriter()) { var oldCout = Console.Out; try { // Each time we write to stdout, capture it for processing later. // We'll put it back in the finally block. Console.SetOut(writer); var host = new CakeHost(); host.AddAssembly(typeof(TaskMain).Assembly); exitCode = host.Run(arguments.ToArray()); stdOut = writer.ToString(); } finally { Console.SetOut(oldCout); } } Console.WriteLine("---- Start STDOUT From Cake.Frosting ----"); Console.WriteLine(stdOut); Console.WriteLine("---- End STDOUT From Cake.Frosting ----"); Assert.AreEqual(0, exitCode); return(stdOut); }