Example #1
0
        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);
                    }
                });
            }
        }
Example #2
0
        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);
            }
        }