Ejemplo n.º 1
0
        public static void Chutzpah(this ICakeContext context, Path testPath = null, ChutzpahSettings settings = null)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var runner = new ChutzpahRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);
            runner.Run(testPath, settings);
        }
Ejemplo n.º 2
0
            public void ShouldBuildCommandWithTestFilePath([Frozen] IProcess process,
                                                           [Frozen] IProcessRunner processRunner,
                                                           [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any <FilePath>()).Returns(true);

                sut.Run((FilePath)"mytests.js");

                processRunner.Received(1)
                .Start(Arg.Any <FilePath>(),
                       Arg.Is <ProcessSettings>(p => p.Arguments.Render() == "mytests.js"));
            }
Ejemplo n.º 3
0
            public void ShouldBuildEmptyCommand([Frozen] IProcess process,
                                                [Frozen] IProcessRunner processRunner,
                                                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any <FilePath>()).Returns(true);

                sut.Run();

                processRunner.Received(1)
                .Start(Arg.Any <FilePath>(),
                       Arg.Is <ProcessSettings>(p => p.Arguments.Render() == string.Empty));
            }
Ejemplo n.º 4
0
            public void ShouldSetWorkingDirectory([Frozen] ICakeEnvironment environment,
                                                  [Frozen] IProcess process,
                                                  [Frozen] IProcessRunner processRunner,
                                                  [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                environment.WorkingDirectory.Returns("/Working");
                fileSystem.Exist(Arg.Any <FilePath>()).Returns(true);
                process.GetExitCode().Returns(0);

                sut.Run();

                processRunner.Received(1)
                .Start(Arg.Any <FilePath>(),
                       Arg.Is <ProcessSettings>(ps => ps.WorkingDirectory.FullPath == "/Working"));
            }
Ejemplo n.º 5
0
            public void ShouldSetWorkingDirectory([Frozen] ICakeEnvironment environment,
                [Frozen] IProcess process,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                environment.WorkingDirectory.Returns("/Working");
                fileSystem.Exist(Arg.Any<FilePath>()).Returns(true);
                process.GetExitCode().Returns(0);

                sut.Run();

                processRunner.Received(1)
                    .Start(Arg.Any<FilePath>(),
                        Arg.Is<ProcessSettings>(ps => ps.WorkingDirectory.FullPath == "/Working"));
            }
Ejemplo n.º 6
0
            public void ShouldOpenInNonDefaultBrowser([Frozen] IProcess process,
                                                      [Frozen] IProcessRunner processRunner,
                                                      [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any <FilePath>()).Returns(true);

                var settings = new ChutzpahSettings
                {
                    LaunchInBrowser = ChutzpahBrowser.Chrome
                };

                sut.Run(settings: settings);

                processRunner.Received(1)
                .Start(Arg.Any <FilePath>(),
                       Arg.Is <ProcessSettings>(
                           p => p.Arguments.Render() == "/openInBrowser Chrome"));
            }
Ejemplo n.º 7
0
            public void ShouldUseProvidedSettings([Frozen] IProcess process,
                                                  [Frozen] IProcessRunner processRunner,
                                                  [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any <FilePath>()).Returns(true);

                var settings = new ChutzpahSettings
                {
                    NoLogo = true,
                    EnableCoverageCollection = true,
                    FailOnError                = true,
                    ForceTeamCityMode          = true,
                    CoverageHtmlOutputFile     = @"c:\temp\Code Coverage\coverage.html",
                    LaunchInBrowser            = ChutzpahBrowser.DefaultBrowser,
                    JUnitXmlResultsFile        = "junitResults.xml",
                    LcovResultsFile            = "lcov.dat",
                    VisualStudioTrxResultsFile = "testResults.trx",
                    NUnit2XmlResultsFile       = "nunit.xml",
                    MaxParallelism             = 1,
                    OutputRunningTestCount     = false,
                    PrintDebugInfo             = true,
                    Trace               = true,
                    ShowFailureReport   = true,
                    AdditionalTestPaths = { (FilePath)"testfile.js", (DirectoryPath)"tests" }
                };

                sut.Run(settings: settings);

                processRunner.Received(1)
                .Start(Arg.Any <FilePath>(),
                       Arg.Is <ProcessSettings>(
                           p =>
                           p.Arguments.Render() ==
                           "/nologo /coverage /failOnError /teamcity /coveragehtml " +
                           "\"c:/temp/Code Coverage/coverage.html\" /openInBrowser " +
                           "/junit \"junitResults.xml\" /lcov \"lcov.dat\" /trx \"testResults.trx\" " +
                           "/nunit2 \"nunit.xml\" /parallelism 1 /silent /debug /trace " +
                           "/showFailureReport /path \"testfile.js\" /path \"tests\""));
            }
Ejemplo n.º 8
0
            public void ShouldBuildEmptyCommand([Frozen] IProcess process,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any<FilePath>()).Returns(true);

                sut.Run();

                processRunner.Received(1)
                    .Start(Arg.Any<FilePath>(),
                        Arg.Is<ProcessSettings>(p => p.Arguments.Render() == string.Empty));
            }
Ejemplo n.º 9
0
            public void ShouldOpenInNonDefaultBrowser([Frozen] IProcess process,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any<FilePath>()).Returns(true);

                var settings = new ChutzpahSettings
                {
                    LaunchInBrowser = ChutzpahBrowser.Chrome
                };

                sut.Run(settings: settings);

                processRunner.Received(1)
                    .Start(Arg.Any<FilePath>(),
                        Arg.Is<ProcessSettings>(
                            p => p.Arguments.Render() == "/openInBrowser Chrome"));
            }
Ejemplo n.º 10
0
            public void ShouldUseProvidedSettings([Frozen] IProcess process,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any<FilePath>()).Returns(true);

                var settings = new ChutzpahSettings
                {
                    NoLogo = true,
                    EnableCoverageCollection = true,
                    FailOnError = true,
                    ForceTeamCityMode = true,
                    CoverageHtmlOutputFile = @"c:\temp\Code Coverage\coverage.html",
                    LaunchInBrowser = ChutzpahBrowser.DefaultBrowser,
                    JUnitXmlResultsFile = "junitResults.xml",
                    LcovResultsFile = "lcov.dat",
                    VisualStudioTrxResultsFile = "testResults.trx",
                    NUnit2XmlResultsFile = "nunit.xml",
                    MaxParallelism = 1,
                    OutputRunningTestCount = false,
                    PrintDebugInfo = true,
                    Trace = true,
                    ShowFailureReport = true,
                    AdditionalTestPaths = { (FilePath)"testfile.js", (DirectoryPath)"tests" }

                };

                sut.Run(settings: settings);

                processRunner.Received(1)
                    .Start(Arg.Any<FilePath>(),
                        Arg.Is<ProcessSettings>(
                            p =>
                                p.Arguments.Render() ==
                                "/nologo /coverage /failOnError /teamcity /coveragehtml " +
                                "\"c:/temp/Code Coverage/coverage.html\" /openInBrowser " +
                                "/junit \"junitResults.xml\" /lcov \"lcov.dat\" /trx \"testResults.trx\" " +
                                "/nunit2 \"nunit.xml\" /parallelism 1 /silent /debug /trace " +
                                "/showFailureReport /path \"testfile.js\" /path \"tests\""));
            }
Ejemplo n.º 11
0
            public void ShouldBuildCommandWithTestFilePath([Frozen] IProcess process,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any<FilePath>()).Returns(true);

                sut.Run((FilePath)"mytests.js");

                processRunner.Received(1)
                    .Start(Arg.Any<FilePath>(),
                        Arg.Is<ProcessSettings>(p => p.Arguments.Render() == "mytests.js"));
            }
Ejemplo n.º 12
0
            public void ProcessRunnerShouldStartChutzpah([Frozen] ICakeEnvironment environment,
                [Frozen] IProcess process, [Frozen] IGlobber globber,
                [Frozen] IProcessRunner processRunner,
                [Frozen] IFileSystem fileSystem, ChutzpahRunner sut)
            {
                environment.WorkingDirectory.Returns("/Working");
                globber.Match("./tools/**/chutzpah.console.exe")
                    .Returns(new[] { (FilePath)"/Working/tools/chutzpah.console.exe" });
                process.GetExitCode().Returns(0);
                fileSystem.Exist(Arg.Any<FilePath>())
                    .Returns(true);

                sut.Run();

                processRunner.Received(1)
                    .Start(
                        Arg.Is<FilePath>(fp => fp.FullPath == "/Working/tools/chutzpah.console.exe"),
                        Arg.Any<ProcessSettings>());
            }