// ReSharper disable once UnusedMember.Global public static void DotNetCoreTest( this ICakeContext context, FilePath project, XUnit2Settings xunitSettings) { DotNetCoreTest(context, new DotNetCoreTestSettings(), project, xunitSettings); }
static XUnit2Settings BuildXUnit2Settings(ParsedProject projectUnderTest, AnyUnitTestSettings settings, DirectoryPath outputDir) { var outputFile = outputDir.CombineWithFilePath(projectUnderTest.Project.AssemblyName + ".xunit2.xml"); var traitArgs = new List <KeyValuePair <string, string> >(); AddTraits(traitArgs, "-notrait", settings.ExcludedTraits); AddTraits(traitArgs, "-trait", settings.IncludedTraits); var s = new XUnit2Settings(); XBuildHelper.ApplyToolSettings(s, NUnitToolArgs); s.ShadowCopy = settings.ShadowCopyAssemblies; s.UseX86 = settings.ForceX86 || projectUnderTest.Platform == PlatformTarget.x86; s.ArgumentCustomization = args => { foreach (var traitArg in traitArgs) { args.Append(traitArg.Key); args.AppendQuoted(traitArg.Value); } args.Append("-xml"); args.AppendQuoted(outputFile.MakeAbsolute(Context.Environment).FullPath); return(args); }; return(s); }
public void Should_Capture_XUnit2() { // Given var fixture = new SpecFlowTestExecutionReporterFixture(); fixture.FileSystem.CreateFile("/Working/tools/xunit.console.exe"); var xUnit2Settings = new XUnit2Settings { ShadowCopy = false }; xUnit2Settings.ArgumentCustomization = builder => builder.Append("-nunit \"/Working/TestResult.xml\""); fixture.Action = context => { context.XUnit2(new FilePath[] { "./Test.dll" }, xUnit2Settings); }; // When var result = fixture.Run(); // Then Assert.Equal("nunitexecutionreport \"/Working/Tests.csproj\" " + "/xmlTestResult:\"/Working/TestResult.xml\"", result.Args); }
public void MaxThreads_Must_Not_Be_Negative() { // Given var settings = new XUnit2Settings(); // When, Then Assert.Throws <ArgumentOutOfRangeException>(() => settings.MaxThreads = -1); }
public void Should_Set_MaxThreads_Option_To_Null_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Null(settings.MaxThreads); }
public void Should_Set_Parallelism_Option_To_None_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Equal(settings.Parallelism, ParallelismOption.None); }
public void Should_Enable_Shadow_Copying_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.True(settings.ShadowCopy); }
public void Should_Disable_HTML_Report_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.False(settings.HtmlReport); }
public void Should_Set_Output_Directory_To_Null_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Null(settings.OutputDirectory); }
public void Should_Set_ReportName_To_Null_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Null(settings.ReportName); }
public void Should_Set_UseX86_To_False_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.False(settings.UseX86); }
public void Should_Set_TraitsToInclude_To_Empty_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Empty(settings.TraitsToInclude); }
public void Should_Set_NoAppDomain_To_False_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.False(settings.NoAppDomain); }
public void Should_Set_Parallelism_Option_To_Null_By_Default() { // Given, When var settings = new XUnit2Settings(); // Then Assert.Null(settings.Parallelism); }
public static void DotNetCoreTest( this ICakeContext context, DotNetCoreTestSettings settings, FilePath project, XUnit2Settings xunitSettings) { settings.ArgumentCustomization = args => ProcessArguments(context, args, project, xunitSettings); context.DotNetCoreTest(project.FullPath, settings); }
public void Should_Set_Switches_For_TraitsToExclude_Defined_In_Settings() { // Given var fixture = new XUnit2RunnerFixture(); var runner = fixture.CreateRunner(); var settings = new XUnit2Settings() .ExcludeTrait("Trait1", "value1A", "value1B") .ExcludeTrait("Trait2", "value2"); // When runner.Run("./Test1.dll", settings); // Then fixture.ProcessRunner.Received(1).Start( Arg.Any <FilePath>(), Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "\"/Working/Test1.dll\" -notrait \"Trait1=value1A\" -notrait \"Trait1=value1B\" -notrait \"Trait2=value2\"")); }
private static ProcessArgumentBuilder ProcessArguments( ICakeContext cakeContext, ProcessArgumentBuilder builder, FilePath project, XUnit2Settings settings) { // No shadow copy? if (!settings.ShadowCopy) { throw new CakeException("-noshadow is not supported in .netcoreapp"); } // No app domain? if (settings.NoAppDomain) { throw new CakeException("-noappdomain is not supported in .netcoreapp"); } if (settings.OutputDirectory == null && (settings.HtmlReport || settings.NUnitReport || settings.XmlReport)) { throw new CakeException("OutputDirectory must not be null"); } // Generate NUnit Style XML report? if (settings.NUnitReport) { var reportFileName = new FilePath(project.GetDirectory().GetDirectoryName()); var assemblyFilename = reportFileName.AppendExtension(".xml"); var outputPath = settings.OutputDirectory.MakeAbsolute(cakeContext.Environment) .GetFilePath(assemblyFilename); builder.Append("-nunit"); builder.AppendQuoted(outputPath.FullPath); } // Generate HTML report? if (settings.HtmlReport) { var reportFileName = new FilePath(project.GetDirectory().GetDirectoryName()); var assemblyFilename = reportFileName.AppendExtension(".html"); var outputPath = settings.OutputDirectory.MakeAbsolute(cakeContext.Environment) .GetFilePath(assemblyFilename); builder.Append("-html"); builder.AppendQuoted(outputPath.FullPath); } if (settings.XmlReportV1) { throw new CakeException("-xmlv1 is not supported in .netcoreapp"); } // Generate XML report? if (settings.XmlReport) { var reportFileName = new FilePath(project.GetDirectory().GetDirectoryName()); var assemblyFilename = reportFileName.AppendExtension(".xml"); var outputPath = settings.OutputDirectory.MakeAbsolute(cakeContext.Environment) .GetFilePath(assemblyFilename); builder.Append("-xml"); builder.AppendQuoted(outputPath.FullPath); } // parallelize test execution? if (settings.Parallelism != null && settings.Parallelism != ParallelismOption.None) { builder.Append($"-parallel {settings.Parallelism.ToString().ToLowerInvariant()}"); } // max thread count for collection parallelization if (settings.MaxThreads.HasValue) { if (settings.MaxThreads.Value == 0) { builder.Append("-maxthreads unlimited"); } else { builder.Append($"-maxthreads {settings.MaxThreads.Value}"); } } foreach (var trait in settings.TraitsToInclude .SelectMany(pair => pair.Value.Select(v => new { Name = pair.Key, Value = v }))) { builder.Append("-trait \"{0}={1}\"", trait.Name, trait.Value); } foreach (var trait in settings.TraitsToExclude .SelectMany(pair => pair.Value.Select(v => new { Name = pair.Key, Value = v }))) { builder.Append($"-notrait \"{trait.Name}={trait.Value}\""); } return(builder); }