private void RunTest( Func <RuntimeConfig, RuntimeConfig> runtimeConfig, Action <DotNetCliExtensions.DotNetCliCustomizer> customizeDotNet = null, string resolvedFramework = null, Action <CommandResult> resultValidator = null) { using (DotNetCliExtensions.DotNetCliCustomizer dotnetCustomizer = SharedState.DotNetWithMultipleFrameworks.Customize()) { customizeDotNet?.Invoke(dotnetCustomizer); RunTest( SharedState.DotNetWithMultipleFrameworks, SharedState.FrameworkReferenceApp, runtimeConfig, commandResult => { if (resolvedFramework != null) { commandResult.Should().Pass() .And.HaveResolvedFramework(MicrosoftNETCoreApp, resolvedFramework); } else { resultValidator?.Invoke(commandResult); } }); } }
private void RunTest( TestSettings testSettings, Action <DotNetCliExtensions.DotNetCliCustomizer> customizeDotNet = null, string resolvedFramework = null) { using (DotNetCliExtensions.DotNetCliCustomizer dotnetCustomizer = SharedState.DotNetWithFrameworks.Customize()) { customizeDotNet?.Invoke(dotnetCustomizer); RunTest( SharedState.DotNetWithFrameworks, SharedState.FrameworkReferenceApp, testSettings, commandResult => { if (resolvedFramework != null) { commandResult.Should().Pass() .And.HaveResolvedFramework(MicrosoftNETCoreApp, resolvedFramework); } else { commandResult.Should().Fail() .And.DidNotFindCompatibleFrameworkVersion(); } }); } }
protected CommandResult RunTest( DotNetCli dotnet, TestApp app, TestSettings settings, Action<CommandResult> resultAction = null, bool? multiLevelLookup = false) { using (DotNetCliExtensions.DotNetCliCustomizer dotnetCustomizer = settings.DotnetCustomizer == null ? null : dotnet.Customize()) { settings.DotnetCustomizer?.Invoke(dotnetCustomizer); if (app is not null) { if (settings.RuntimeConfigCustomizer != null) { settings.RuntimeConfigCustomizer(RuntimeConfig.Path(app.RuntimeConfigJson)).Save(); } settings.WithCommandLine(app.AppDll); } Command command = dotnet.Exec(settings.CommandLine.First(), settings.CommandLine.Skip(1).ToArray()); if (settings.WorkingDirectory != null) { command = command.WorkingDirectory(settings.WorkingDirectory); } CommandResult result = command .EnableTracingAndCaptureOutputs() .MultilevelLookup(multiLevelLookup) .Environment(settings.Environment) .Execute(); resultAction?.Invoke(result); return result; } }
protected CommandResult RunTest( DotNetCli dotnet, TestApp app, TestSettings settings, Action <CommandResult> resultAction = null, bool multiLevelLookup = false) { using (DotNetCliExtensions.DotNetCliCustomizer dotnetCustomizer = settings.DotnetCustomizer == null ? null : dotnet.Customize()) { settings.DotnetCustomizer?.Invoke(dotnetCustomizer); if (settings.RuntimeConfigCustomizer != null) { settings.RuntimeConfigCustomizer(RuntimeConfig.Path(app.RuntimeConfigJson)).Save(); } settings.WithCommandLine(app.AppDll); Command command = dotnet.Exec(settings.CommandLine.First(), settings.CommandLine.Skip(1).ToArray()); if (settings.WorkingDirectory != null) { command = command.WorkingDirectory(settings.WorkingDirectory); } CommandResult result = command .EnvironmentVariable("COREHOST_TRACE", "1") .EnvironmentVariable("DOTNET_MULTILEVEL_LOOKUP", multiLevelLookup ? "1" : "0") .Environment(settings.Environment) .CaptureStdOut() .CaptureStdErr() .Execute(); resultAction?.Invoke(result); return(result); } }