diff --git a/CHANGELOG.md b/CHANGELOG.md index ee10c0a85..7d8cc9388 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,18 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt ### Security +## [2.20.0] - 2018-10-09 + +### Added + +- Pickles GUI: Generate equivalent PowerShell or Windows Console command line ([90](https://github.com/picklesdoc/pickles/issues/90)) (by [@magicmonty](https://github.com/magicmonty)) + +### Fixed + +- Inconclusive marker shown when generating doc without test results ([545](https://github.com/picklesdoc/pickles/issues/545)) (by [@dirkrombauts](https://github.com/dirkrombauts)) +- Remove requirement for hardcoded 'Index.html' in featureSearch.js ([541](https://github.com/picklesdoc/pickles/pull/541)) (by [@szaliszali](https://github.com/szaliszali)) +- Exception in XUnit2ScenarioOutlineExampleMatcher ([548](https://github.com/picklesdoc/pickles/issues/548)) (by [@magicmonty](https://github.com/magicmonty)) + ## [2.19.0] - 2018-07-20 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6dc764fca..0f8085734 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ If you find a bug in a Test Result Provider and want to contribute towards fixin Implement the automation layer in .NET, Ruby and JS if you are able. If you create your scenarios so that they use only steps from the other feature files, then you will most likely not need this step. -Use the `CreateTestresults.cmd` script to create test result files and to deploy them to the source code of Pickles. Please remember to build the `TestHarness.sln` solution first! +Use the `CreateTestResults.ps1` script to create test result files and to deploy them to the source code of Pickles. Please remember to build the `TestHarness.sln` solution first! Extend the set of unit tests for the unit test providers. Your best bet is to add test scenarios to the [Standard Test Suite](https://github.com/picklesdoc/pickles/blob/develop/src/Pickles/Pickles.TestFrameworks.UnitTests/StandardTestSuite.cs). Now comes the boring part: for each class that derives from `StandardTestSuite`, add methods in that class that call the test scenarios that you added in `StandardTestSuite`. @@ -30,7 +30,7 @@ the `test-harness` directory contains the scenarios from which test results are ##### .NET Code -The .NET code is found in `./TestHarness/TestHarness.sln` solution. You will need [Visual Studio 2015](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx) in order to open the solution; the free Community version is fine. Remember to restore the NuGet packages before you compile. +The .NET code is found in `./TestHarness/TestHarness.sln` solution. You will need [Visual Studio 2017](https://visualstudio.microsoft.com/downloads/) in order to open the solution; the free Community version is fine. Remember to restore the NuGet packages before you compile. ##### Cucumber/Ruby Code diff --git a/CreateTestResults.ps1 b/CreateTestResults.ps1 new file mode 100644 index 000000000..46ef8e590 --- /dev/null +++ b/CreateTestResults.ps1 @@ -0,0 +1,82 @@ +Write-Host "Remember to build the solution first!" + +# NUnit2 +Start-Process -FilePath "$PSScriptRoot\test-harness\packages\NUnit.Runners.2.6.4\tools\nunit-console.exe" -ArgumentList "$PSScriptRoot\test-harness\nunit\bin\Debug\nunitHarness.dll", "/result=$PSScriptRoot\results-example-nunit.xml" -NoNewWindow -Wait + +# NUnit 2 with NUnit3 runner +Start-Process -FilePath "$PSScriptRoot\test-harness\packages\NUnit.ConsoleRunner.3.6.0\tools\nunit3-console.exe" -ArgumentList "$PSScriptRoot\test-harness\nunit\bin\Debug\nunitHarness.dll", "/result=$PSScriptRoot\results-example-nunit2-with-nunit3-runner.xml" -NoNewWindow -Wait + +# NUnit 3 +Start-Process -FilePath "$PSScriptRoot\test-harness\packages\NUnit.ConsoleRunner.3.6.0\tools\nunit3-console.exe" -ArgumentList "$PSScriptRoot\test-harness\nunit3\bin\Debug\nunit3Harness.dll", "/result=$PSScriptRoot\results-example-nunit3.xml" -NoNewWindow -Wait + +# SpecRun +Start-Process -FilePath "$PSScriptRoot\test-harness\packages\SpecRun.Runner.1.2.0\tools\specrun.exe" -ArgumentList "run default.srprofile", "/baseFolder:$PSScriptRoot\test-harness\SpecRun\bin\Debug", "/log:specrun.log", "/report:$PSScriptRoot\results-example-specrun.html" -NoNewWindow -Wait + +# XUnit 1 +Start-Process -FilePath "$PSScriptRoot\test-harness\packagesNonNuget\xunit.runner\xunit.console.clr4.exe" -ArgumentList "$PSScriptRoot\test-harness\xunit\bin\Debug\xunitHarness.dll", "/xml $PSScriptRoot\results-example-xunit.xml" -NoNewWindow -Wait + +# XUnit 2 +Start-Process -FilePath "$PSScriptRoot\test-harness\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe" -ArgumentList "$PSScriptRoot\test-harness\xunit2\bin\Debug\xunit2Harness.dll", "-xml $PSScriptRoot\results-example-xunit2.xml", "-parallel none" -NoNewWindow -Wait + +# MSTest +$MSTest = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017" -Recurse | Where-Object { $_.Name -eq "MSTest.exe" } | Select-Object -First 1 +$MsTestResultFilePath = "$PSScriptRoot\results-example-mstest.trx" +if (Test-Path $MsTestResultFilePath) { + Remove-Item $MsTestResultFilePath +} + +Start-Process -FilePath $MSTest.FullName -ArgumentList "/testcontainer:$PSScriptRoot\test-harness\mstest\bin\Debug\mstestHarness.dll", "/resultsfile:$MsTestResultFilePath", "/testsettings:$PSScriptRoot\test-harness\TestSettings.testsettings" -NoNewWindow -Wait + +# Cucumber +Set-Location -Path "$PSScriptRoot\test-harness\Cucumber" +& "cucumber" --format json_pretty --out "$PSScriptRoot\results-example-json.json" --tags ~@ignore +Set-Location $PSScriptRoot + +# CucumberJS +Set-Location -Path "$PSScriptRoot\test-harness\CucumberJS" +& "$PSScriptRoot\node_modules\.bin\cucumber-js" --format json:"$PSScriptRoot\results-example-cucumberjs-json.json" +Set-Location $PSScriptRoot + +# VSTest +## Get VSTest console runner location +$VSTest = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017" -Recurse | Where-Object { $_.Name -eq "vstest.console.exe" } | Select-Object -First 1 + +## Remove any previous .trx files +Get-ChildItem -Path "$PSScriptRoot\TestResults" | Where-Object { $_.Extension -eq ".trx" } | Remove-Item + +Start-Process -FilePath $VSTest.FullName -ArgumentList "$PSScriptRoot\test-harness\mstest\bin\Debug\mstestHarness.dll", "/logger:trx" -NoNewWindow -Wait + +## Get the .trx file +$VsTestResultFile = Get-ChildItem -Path "$PSScriptRoot\TestResults" | Where-Object {$_.Extension -eq ".trx" } | Sort-Object CreationTime -Descending | Select-Object -First 1 + +# Moving result files to corresponding unit test projects +Write-Host "Moving NUnit 2 results" +Move-Item -Path "$PSScriptRoot\results-example-nunit.xml" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit2\" -Force + +Write-Host "Moving NUnit 2 with NUnit3 runner results" +Move-Item -Path "$PSScriptRoot\results-example-nunit2-with-nunit3-runner.xml" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit3\" -Force + +Write-Host "Moving NUnit 3 results" +Move-Item -Path "$PSScriptRoot\results-example-nunit3.xml" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit3\" -Force + +Write-Host "Moving XUnit 1 results" +Move-Item -Path "$PSScriptRoot\results-example-xunit.xml" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\XUnit\XUnit1\" -Force + +Write-Host "Moving XUnit 2 results" +Move-Item -Path "$PSScriptRoot\results-example-xunit2.xml" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\XUnit\XUnit2\" -Force + +Write-Host "Moving SpecRun results" +Move-Item -Path "$PSScriptRoot\results-example-specrun.html" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\SpecRun\" -Force + +Write-Host "Moving Cucumber JSON results" +Move-Item -Path "$PSScriptRoot\results-example-json.json" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\CucumberJSON\" -Force + +Write-Host "Moving MSTest results" +Move-Item -Path "$PSScriptRoot\results-example-mstest.trx" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\MsTest\" -Force + +Write-Host "Moving CucumberJS JSON results" +Write-Host "The tags do not seem to work - remember to manually remove the ignored scenarios from the result" +Move-Item -Path "$PSScriptRoot\results-example-cucumberjs-json.json" -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\CucumberJSON\" -Force + +Write-Host "Moving VSTest results" +Move-Item -Path $VsTestResultFile.FullName -Destination "$PSScriptRoot\src\Pickles\Pickles.TestFrameworks.UnitTests\VsTest\results-example-vstest.trx" -Force \ No newline at end of file diff --git a/CreateTestresults.cmd b/CreateTestresults.cmd deleted file mode 100644 index 0571f582f..000000000 --- a/CreateTestresults.cmd +++ /dev/null @@ -1,55 +0,0 @@ -@echo off -@pushd %~dp0 - -ECHO Remember to build the solution first! - -"%~dp0\test-harness\packages\NUnit.Runners.2.6.4\tools\nunit-console.exe" "%~dp0\test-harness\nunit\bin\Debug\nunitHarness.dll" /result="%~dp0\results-example-nunit.xml" -"%~dp0\test-harness\packages\NUnit.ConsoleRunner.3.6.0\tools\nunit3-console.exe" "%~dp0\test-harness\nunit\bin\Debug\nunitHarness.dll" /result="%~dp0\results-example-nunit2-with-nunit3-runner.xml" - -"%~dp0\test-harness\packages\NUnit.ConsoleRunner.3.6.0\tools\nunit3-console.exe" "%~dp0\test-harness\nunit3\bin\Debug\nunit3Harness.dll" /result="%~dp0\results-example-nunit3.xml" - -"%~dp0\test-harness\packages\SpecRun.Runner.1.2.0\tools\specrun.exe" run default.srprofile "/baseFolder:%~dp0\test-harness\SpecRun\bin\Debug" /log:specrun.log /report:"%~dp0\results-example-specrun.html" - -"%~dp0\test-harness\packagesNonNuget\xunit.runner\xunit.console.clr4.exe" "%~dp0\test-harness\xunit\bin\Debug\xunitHarness.dll" /xml "%~dp0\results-example-xunit.xml" - -"%~dp0\test-harness\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe" "%~dp0\test-harness\xunit2\bin\Debug\xunit2Harness.dll" -xml "%~dp0\results-example-xunit2.xml" -parallel none - -del "%~dp0\results-example-mstest.trx" -"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:"%~dp0\test-harness\mstest\bin\Debug\mstestHarness.dll" /resultsfile:"%~dp0\results-example-mstest.trx" /testsettings:"%~dp0\test-harness\TestSettings.testsettings" - -cd "%~dp0\test-harness\Cucumber" -call cucumber --format json_pretty --out "%~dp0\results-example-json.json" --tags ~@ignore -cd "%~dp0" - -cd "%~dp0\test-harness\CucumberJS" -call ..\..\node_modules\.bin\cucumber-js --format json:"..\..\results-example-cucumberjs-json.json" -REM the tags do not seem to work - remember to manually remove the ignored scenarios from the result --tags 'not @ignore' -cd "%~dp0" - -rmdir /s /q "%~dp0\TestResults\" -"%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "%~dp0\test-harness\mstest\bin\Debug\mstestHarness.dll" /logger:trx -FOR /R "%~dp0\TestResults\" %%G IN (*.trx) DO move "%%G" "%~dp0\results-example-vstest.trx" - -ECHO Moving NUnit 2 results -move "%~dp0\results-example-nunit.xml" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit2\" -ECHO Moving NUnit 2 with NUnit3 runner results -move "%~dp0\results-example-nunit2-with-nunit3-runner.xml" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit3\" -ECHO Moving NUnit 3 results -move "%~dp0\results-example-nunit3.xml" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\NUnit\NUnit3\" -ECHO Moving XUnit 1 results -move "%~dp0\results-example-xunit.xml" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\XUnit\XUnit1\" -ECHO Moving XUnit 2 results -move "%~dp0\results-example-xunit2.xml" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\XUnit\XUnit2\" -ECHO Moving SpecRun results -move "%~dp0\results-example-specrun.html" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\SpecRun\" -ECHO Moving Cucumber JSON results -move "%~dp0\results-example-json.json" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\CucumberJSON\" -ECHO Moving MSTest results -move "%~dp0\results-example-mstest.trx" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\MsTest\" -ECHO Moving CucumberJS JSON results -ECHO The tags do not seem to work - remember to manually remove the ignored scenarios from the result -move "%~dp0\results-example-cucumberjs-json.json" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\CucumberJSON\" -ECHO Moving VSTest results -move "%~dp0\results-example-vstest.trx" "%~dp0\src\Pickles\Pickles.TestFrameworks.UnitTests\VsTest\" - -@popd diff --git a/build.bat b/build.bat index a0825c98f..6baf103e1 100644 --- a/build.bat +++ b/build.bat @@ -1,5 +1,5 @@ @echo off -set "picklesVersion=2.19.0" +set "picklesVersion=2.20.0" cls diff --git a/build.fsx b/build.fsx index 399cd9364..c62282c22 100644 --- a/build.fsx +++ b/build.fsx @@ -119,6 +119,12 @@ Target "BuildTest.Runners.CommandLine" (fun _ -> |> Log "AppBuild-Output: " ) +Target "BuildTest.Runners.UI" (fun _ -> + !! "src/Pickles/Pickles.UserInterface.UnitTests/Pickles.UserInterface.UnitTests.csproj" + |> MSBuildRelease testDir "Build" + |> Log "AppBuild-Output: " +) + let createZip (packageType : string) = !! (buildDir + "/" + packageType + "/*.*") -- "*.zip" |> Zip (buildDir + packageType) (deployDir + "Pickles-" + packageType + "-" + version + ".zip") @@ -151,6 +157,7 @@ Target "Default" (fun _ -> ==> "BuildTest.DocumentationBuilders.Json" ==> "BuildTest.DocumentationBuilders.Word" ==> "BuildTest.Runners.CommandLine" + ==> "BuildTest.Runners.UI" ==> "Zip" ==> "Default" diff --git a/docs/Output/Dhtml/Index.html b/docs/Output/Dhtml/Index.html index 3e777c9dc..a13ed7839 100644 --- a/docs/Output/Dhtml/Index.html +++ b/docs/Output/Dhtml/Index.html @@ -45,11 +45,11 @@ diff --git a/docs/Output/Dhtml/default.htm b/docs/Output/Dhtml/default.htm new file mode 100644 index 000000000..3e777c9dc --- /dev/null +++ b/docs/Output/Dhtml/default.htm @@ -0,0 +1,554 @@ + + + + + + Features + + + + + + + + + + + + + + +
+ Loading... +
+ + + + + + + + + + + + +
+
+
+
+
+
+
+
+ +
+ + +
+ +
Generated on:
+
+
+
+ +
+
+
+
+ + + + +
+

+
+
+ +
+
+
+

Background:

+
+
    +
    +
    + +
    +
    + + + + + +
    + +
    +
    + +
    +

    +
    +
    + +
    + +
      + +
        +
      • +
        + + + + + + +
        +
        + : +
        +
        +
        +
      • +
      + +
      + + + Get Link for Scenario + +
      +
      +
      + + +
      + + +
      +
      + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/Output/Dhtml/img/link.png b/docs/Output/Dhtml/img/link.png index bc53e8da7..68fc43b7c 100644 Binary files a/docs/Output/Dhtml/img/link.png and b/docs/Output/Dhtml/img/link.png differ diff --git a/docs/Output/Dhtml/js/featureSearch.js b/docs/Output/Dhtml/js/featureSearch.js index b790d29d0..02e77ad58 100644 --- a/docs/Output/Dhtml/js/featureSearch.js +++ b/docs/Output/Dhtml/js/featureSearch.js @@ -48,7 +48,7 @@ // catching instances where pushState will not work (for instance file:// protocol) try { - var url = 'Index.html?feature=' + path; + var url = '?feature=' + path; window.history.pushState({ path: url }, '', url); } catch (ex) { diff --git a/docs/Output/Dhtml/pickledFeatures.js b/docs/Output/Dhtml/pickledFeatures.js index a40ef7078..1e05cd203 100644 --- a/docs/Output/Dhtml/pickledFeatures.js +++ b/docs/Output/Dhtml/pickledFeatures.js @@ -36,7 +36,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -90,19 +91,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -141,19 +145,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -185,7 +192,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -211,7 +219,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -237,7 +246,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -263,7 +273,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -289,19 +300,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -349,7 +363,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -382,7 +397,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -417,7 +433,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -454,7 +471,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -490,13 +508,15 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [ "@allAboutTags", @@ -505,7 +525,8 @@ jsonPWrapper ({ }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -531,7 +552,8 @@ jsonPWrapper ({ "30", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -540,7 +562,8 @@ jsonPWrapper ({ "40", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -549,7 +572,8 @@ jsonPWrapper ({ "50", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ] ] @@ -575,7 +599,8 @@ jsonPWrapper ({ "120", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -584,7 +609,8 @@ jsonPWrapper ({ "1020", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ] ] @@ -635,7 +661,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -655,7 +682,8 @@ jsonPWrapper ({ "30", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -664,7 +692,8 @@ jsonPWrapper ({ "40", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -673,7 +702,8 @@ jsonPWrapper ({ "50", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ] ] @@ -696,7 +726,8 @@ jsonPWrapper ({ "120", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ], [ @@ -705,7 +736,8 @@ jsonPWrapper ({ "1020", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ] ] @@ -750,19 +782,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -794,7 +829,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -839,7 +875,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -886,7 +923,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -908,7 +946,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -934,19 +973,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -978,7 +1020,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1032,13 +1075,15 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [ "@showUpInScenarioInfo", @@ -1047,7 +1092,8 @@ jsonPWrapper ({ }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1079,7 +1125,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1105,7 +1152,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], @@ -1131,18 +1179,21 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1225,7 +1276,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1302,7 +1354,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1368,7 +1421,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1459,19 +1513,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1600,7 +1657,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1700,19 +1758,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1758,19 +1819,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1816,19 +1880,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1895,19 +1962,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1953,7 +2023,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -1986,19 +2057,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2037,19 +2111,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2081,7 +2158,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2107,7 +2185,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2133,7 +2212,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2166,7 +2246,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2199,19 +2280,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2259,19 +2343,22 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2313,19 +2400,22 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2357,7 +2447,8 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2376,7 +2467,8 @@ jsonPWrapper ({ "value2", { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": true } ] ] @@ -2409,7 +2501,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], @@ -2435,18 +2528,21 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2581,19 +2677,22 @@ jsonPWrapper ({ "Tags": [], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2646,7 +2745,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2689,7 +2789,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2732,7 +2833,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2775,19 +2877,22 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2829,7 +2934,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2865,7 +2971,8 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2901,19 +3008,22 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } }, { @@ -2962,19 +3072,22 @@ jsonPWrapper ({ ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false }, "Tags": [] }, "Result": { "WasExecuted": false, - "WasSuccessful": false + "WasSuccessful": false, + "WasProvided": false } } ], @@ -3133,7 +3246,7 @@ jsonPWrapper ({ }, "Configuration": { "SutName": "Pickles", - "SutVersion": "2.19.0", - "GeneratedOn": "20 Juli 2018 19:39:00" + "SutVersion": "2.20.0", + "GeneratedOn": "9 Oktober 2018 17:01:57" } }); \ No newline at end of file diff --git a/docs/Output/Excel/features.xlsx b/docs/Output/Excel/features.xlsx index 9635a6ea7..e5b8f5932 100644 Binary files a/docs/Output/Excel/features.xlsx and b/docs/Output/Excel/features.xlsx differ diff --git a/docs/Output/Html/Features/00BasicGherkin/BasicGherkin.html b/docs/Output/Html/Features/00BasicGherkin/BasicGherkin.html index 194a2d1ed..099ae3a77 100644 --- a/docs/Output/Html/Features/00BasicGherkin/BasicGherkin.html +++ b/docs/Output/Html/Features/00BasicGherkin/BasicGherkin.html @@ -305,9 +305,9 @@

      Using And and But

      diff --git a/docs/Output/Html/Features/00BasicGherkin/index.html b/docs/Output/Html/Features/00BasicGherkin/index.html index 6e2a56997..0bee8bdd7 100644 --- a/docs/Output/Html/Features/00BasicGherkin/index.html +++ b/docs/Output/Html/Features/00BasicGherkin/index.html @@ -268,9 +268,9 @@

      00 Basic Gherkin

      diff --git a/docs/Output/Html/Features/01TestRunner/TestRunnerIsNotImportant.html b/docs/Output/Html/Features/01TestRunner/TestRunnerIsNotImportant.html index 6fdf7678f..00b39a585 100644 --- a/docs/Output/Html/Features/01TestRunner/TestRunnerIsNotImportant.html +++ b/docs/Output/Html/Features/01TestRunner/TestRunnerIsNotImportant.html @@ -278,9 +278,9 @@

      A couple of simple steps

      diff --git a/docs/Output/Html/Features/01TestRunner/index.html b/docs/Output/Html/Features/01TestRunner/index.html index 94ca61745..888dafdd5 100644 --- a/docs/Output/Html/Features/01TestRunner/index.html +++ b/docs/Output/Html/Features/01TestRunner/index.html @@ -266,9 +266,9 @@

      01 Test Runner

      diff --git a/docs/Output/Html/Features/02TagsAndHooks/Hooks.html b/docs/Output/Html/Features/02TagsAndHooks/Hooks.html index cdf351cf1..55cbaa141 100644 --- a/docs/Output/Html/Features/02TagsAndHooks/Hooks.html +++ b/docs/Output/Html/Features/02TagsAndHooks/Hooks.html @@ -340,9 +340,9 @@

      Hooking into pre conditions for Steps in SpecFlow

      diff --git a/docs/Output/Html/Features/02TagsAndHooks/TagDemo.html b/docs/Output/Html/Features/02TagsAndHooks/TagDemo.html index da9e4043e..d21fa1d13 100644 --- a/docs/Output/Html/Features/02TagsAndHooks/TagDemo.html +++ b/docs/Output/Html/Features/02TagsAndHooks/TagDemo.html @@ -358,9 +358,9 @@

      A scenario with 2 tags

      diff --git a/docs/Output/Html/Features/02TagsAndHooks/index.html b/docs/Output/Html/Features/02TagsAndHooks/index.html index 1e14b407b..17efd6576 100644 --- a/docs/Output/Html/Features/02TagsAndHooks/index.html +++ b/docs/Output/Html/Features/02TagsAndHooks/index.html @@ -275,9 +275,9 @@

      02 Tags And Hooks

      diff --git a/docs/Output/Html/Features/031ScenarioContext/ScenarioContext.html b/docs/Output/Html/Features/031ScenarioContext/ScenarioContext.html index 00a702ab7..a4ff13862 100644 --- a/docs/Output/Html/Features/031ScenarioContext/ScenarioContext.html +++ b/docs/Output/Html/Features/031ScenarioContext/ScenarioContext.html @@ -344,9 +344,9 @@

      Pending step

      diff --git a/docs/Output/Html/Features/031ScenarioContext/index.html b/docs/Output/Html/Features/031ScenarioContext/index.html index 8cc6ac1bc..a173a28e3 100644 --- a/docs/Output/Html/Features/031ScenarioContext/index.html +++ b/docs/Output/Html/Features/031ScenarioContext/index.html @@ -266,9 +266,9 @@

      031 Scenario Context

      diff --git a/docs/Output/Html/Features/032FeatureContext/FeatureContextFeatures.html b/docs/Output/Html/Features/032FeatureContext/FeatureContextFeatures.html index 6a4dcda75..be79d6656 100644 --- a/docs/Output/Html/Features/032FeatureContext/FeatureContextFeatures.html +++ b/docs/Output/Html/Features/032FeatureContext/FeatureContextFeatures.html @@ -295,9 +295,9 @@

      Showing information of the feature

      diff --git a/docs/Output/Html/Features/032FeatureContext/index.html b/docs/Output/Html/Features/032FeatureContext/index.html index 71ce134de..9fe0e3282 100644 --- a/docs/Output/Html/Features/032FeatureContext/index.html +++ b/docs/Output/Html/Features/032FeatureContext/index.html @@ -266,9 +266,9 @@

      032 Feature Context

      diff --git a/docs/Output/Html/Features/03ScenarioOutline/ScenarioOutline.html b/docs/Output/Html/Features/03ScenarioOutline/ScenarioOutline.html index 3c97ec15b..c1eebd3bb 100644 --- a/docs/Output/Html/Features/03ScenarioOutline/ScenarioOutline.html +++ b/docs/Output/Html/Features/03ScenarioOutline/ScenarioOutline.html @@ -434,9 +434,9 @@

      Examples: more than 100

      diff --git a/docs/Output/Html/Features/03ScenarioOutline/index.html b/docs/Output/Html/Features/03ScenarioOutline/index.html index 06d78bda6..26224c425 100644 --- a/docs/Output/Html/Features/03ScenarioOutline/index.html +++ b/docs/Output/Html/Features/03ScenarioOutline/index.html @@ -266,9 +266,9 @@

      03 Scenario Outline

      diff --git a/docs/Output/Html/Features/04Background/BackgroundFeature.html b/docs/Output/Html/Features/04Background/BackgroundFeature.html index 25f5d62b2..fec879332 100644 --- a/docs/Output/Html/Features/04Background/BackgroundFeature.html +++ b/docs/Output/Html/Features/04Background/BackgroundFeature.html @@ -305,9 +305,9 @@

      Add 2 to the sum

      diff --git a/docs/Output/Html/Features/04Background/index.html b/docs/Output/Html/Features/04Background/index.html index 86598f802..4ef3fb79c 100644 --- a/docs/Output/Html/Features/04Background/index.html +++ b/docs/Output/Html/Features/04Background/index.html @@ -266,9 +266,9 @@

      04 Background

      diff --git a/docs/Output/Html/Features/05TablesAndAssist/TableScenario.html b/docs/Output/Html/Features/05TablesAndAssist/TableScenario.html index 70a818473..2508ea1f6 100644 --- a/docs/Output/Html/Features/05TablesAndAssist/TableScenario.html +++ b/docs/Output/Html/Features/05TablesAndAssist/TableScenario.html @@ -326,9 +326,9 @@

      Example of a wide table

      diff --git a/docs/Output/Html/Features/05TablesAndAssist/index.html b/docs/Output/Html/Features/05TablesAndAssist/index.html index 28bf65518..96f246655 100644 --- a/docs/Output/Html/Features/05TablesAndAssist/index.html +++ b/docs/Output/Html/Features/05TablesAndAssist/index.html @@ -266,9 +266,9 @@

      05 Tables And Assist

      diff --git a/docs/Output/Html/Features/06CompareToAssist/CompareTo.html b/docs/Output/Html/Features/06CompareToAssist/CompareTo.html index 3ebb42362..76a0e1fa4 100644 --- a/docs/Output/Html/Features/06CompareToAssist/CompareTo.html +++ b/docs/Output/Html/Features/06CompareToAssist/CompareTo.html @@ -298,9 +298,9 @@

      CompareToSet

      diff --git a/docs/Output/Html/Features/06CompareToAssist/index.html b/docs/Output/Html/Features/06CompareToAssist/index.html index e48c9576d..614ee7668 100644 --- a/docs/Output/Html/Features/06CompareToAssist/index.html +++ b/docs/Output/Html/Features/06CompareToAssist/index.html @@ -266,9 +266,9 @@

      06 Compare To Assist

      diff --git a/docs/Output/Html/Features/07Localization/Svenska.html b/docs/Output/Html/Features/07Localization/Svenska.html index 77744276f..c382fdfb1 100644 --- a/docs/Output/Html/Features/07Localization/Svenska.html +++ b/docs/Output/Html/Features/07Localization/Svenska.html @@ -280,9 +280,9 @@

      Summera 5 och 7 ska vara 12

      diff --git a/docs/Output/Html/Features/07Localization/Vlaams.html b/docs/Output/Html/Features/07Localization/Vlaams.html index 3604544ce..719a5b726 100644 --- a/docs/Output/Html/Features/07Localization/Vlaams.html +++ b/docs/Output/Html/Features/07Localization/Vlaams.html @@ -277,9 +277,9 @@

      Het Scenario

      diff --git a/docs/Output/Html/Features/07Localization/index.html b/docs/Output/Html/Features/07Localization/index.html index 1fcf10902..7510f5766 100644 --- a/docs/Output/Html/Features/07Localization/index.html +++ b/docs/Output/Html/Features/07Localization/index.html @@ -273,9 +273,9 @@

      07 Localization

      diff --git a/docs/Output/Html/Features/08AttributeOverloading/AttributeOverloading.html b/docs/Output/Html/Features/08AttributeOverloading/AttributeOverloading.html index 849b62668..eeed26aca 100644 --- a/docs/Output/Html/Features/08AttributeOverloading/AttributeOverloading.html +++ b/docs/Output/Html/Features/08AttributeOverloading/AttributeOverloading.html @@ -286,9 +286,9 @@

      Checking number for evenness

      diff --git a/docs/Output/Html/Features/08AttributeOverloading/index.html b/docs/Output/Html/Features/08AttributeOverloading/index.html index d829e4063..8a4045673 100644 --- a/docs/Output/Html/Features/08AttributeOverloading/index.html +++ b/docs/Output/Html/Features/08AttributeOverloading/index.html @@ -266,9 +266,9 @@

      08 Attribute Overloading

      diff --git a/docs/Output/Html/Features/09CallingStepsFromSteps/CallingStepsFromSteps.html b/docs/Output/Html/Features/09CallingStepsFromSteps/CallingStepsFromSteps.html index feaeade71..2c03a63b6 100644 --- a/docs/Output/Html/Features/09CallingStepsFromSteps/CallingStepsFromSteps.html +++ b/docs/Output/Html/Features/09CallingStepsFromSteps/CallingStepsFromSteps.html @@ -298,9 +298,9 @@

      Do something meaningful

      diff --git a/docs/Output/Html/Features/09CallingStepsFromSteps/index.html b/docs/Output/Html/Features/09CallingStepsFromSteps/index.html index cf01a81a7..d74b415c1 100644 --- a/docs/Output/Html/Features/09CallingStepsFromSteps/index.html +++ b/docs/Output/Html/Features/09CallingStepsFromSteps/index.html @@ -266,9 +266,9 @@

      09 Calling Steps From Steps

      diff --git a/docs/Output/Html/Features/10StepTransformation/StepTransformation.html b/docs/Output/Html/Features/10StepTransformation/StepTransformation.html index 895782309..6bf1f15e4 100644 --- a/docs/Output/Html/Features/10StepTransformation/StepTransformation.html +++ b/docs/Output/Html/Features/10StepTransformation/StepTransformation.html @@ -278,9 +278,9 @@

      Steps with non-string arguments

      diff --git a/docs/Output/Html/Features/10StepTransformation/index.html b/docs/Output/Html/Features/10StepTransformation/index.html index 632e44e45..2988928df 100644 --- a/docs/Output/Html/Features/10StepTransformation/index.html +++ b/docs/Output/Html/Features/10StepTransformation/index.html @@ -266,9 +266,9 @@

      10 Step Transformation

      diff --git a/docs/Output/Html/Features/11ContextInjection/ContextInjection.html b/docs/Output/Html/Features/11ContextInjection/ContextInjection.html index b076f6420..a2cd731b9 100644 --- a/docs/Output/Html/Features/11ContextInjection/ContextInjection.html +++ b/docs/Output/Html/Features/11ContextInjection/ContextInjection.html @@ -346,9 +346,9 @@

      Feature with a dependent context

      diff --git a/docs/Output/Html/Features/11ContextInjection/index.html b/docs/Output/Html/Features/11ContextInjection/index.html index 0cf18a2cb..c1c68b1ed 100644 --- a/docs/Output/Html/Features/11ContextInjection/index.html +++ b/docs/Output/Html/Features/11ContextInjection/index.html @@ -268,9 +268,9 @@

      11 Context Injection

      diff --git a/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/NestedFolderExample.html b/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/NestedFolderExample.html index d588164d9..d3e5d767e 100644 --- a/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/NestedFolderExample.html +++ b/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/NestedFolderExample.html @@ -281,9 +281,9 @@

      Nested - Add two numbers

      diff --git a/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/index.html b/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/index.html index 6cf643fd1..a09b53504 100644 --- a/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/index.html +++ b/docs/Output/Html/Features/12NestedFolders/ChildFolder/ChildChildFolder/index.html @@ -266,9 +266,9 @@

      Child Child Folder

      diff --git a/docs/Output/Html/Features/12NestedFolders/ChildFolder/index.html b/docs/Output/Html/Features/12NestedFolders/ChildFolder/index.html index e999b18ef..30b7489c1 100644 --- a/docs/Output/Html/Features/12NestedFolders/ChildFolder/index.html +++ b/docs/Output/Html/Features/12NestedFolders/ChildFolder/index.html @@ -256,9 +256,9 @@

      Child Folder

      diff --git a/docs/Output/Html/Features/14MarkdownExample/MarkdownExamples.html b/docs/Output/Html/Features/14MarkdownExample/MarkdownExamples.html index 1ea8ef047..86edd5300 100644 --- a/docs/Output/Html/Features/14MarkdownExample/MarkdownExamples.html +++ b/docs/Output/Html/Features/14MarkdownExample/MarkdownExamples.html @@ -396,9 +396,9 @@

      Examples:

      diff --git a/docs/Output/Html/Features/14MarkdownExample/index.html b/docs/Output/Html/Features/14MarkdownExample/index.html index e1c1812d2..6f90bad55 100644 --- a/docs/Output/Html/Features/14MarkdownExample/index.html +++ b/docs/Output/Html/Features/14MarkdownExample/index.html @@ -298,9 +298,9 @@

      14 Markdown Example

      diff --git a/docs/Output/Html/Features/15Pickles/InteractiveDHTMLView.html b/docs/Output/Html/Features/15Pickles/InteractiveDHTMLView.html index a962a57eb..420369c78 100644 --- a/docs/Output/Html/Features/15Pickles/InteractiveDHTMLView.html +++ b/docs/Output/Html/Features/15Pickles/InteractiveDHTMLView.html @@ -278,9 +278,9 @@

      Scenario with large data table

      diff --git a/docs/Output/Html/Features/15Pickles/index.html b/docs/Output/Html/Features/15Pickles/index.html index 7fe6ca04f..c5635730b 100644 --- a/docs/Output/Html/Features/15Pickles/index.html +++ b/docs/Output/Html/Features/15Pickles/index.html @@ -267,9 +267,9 @@

      15 Pickles

      diff --git a/docs/Output/Html/Features/Arithmetic.html b/docs/Output/Html/Features/Arithmetic.html index e6acd9793..a2d57449b 100644 --- a/docs/Output/Html/Features/Arithmetic.html +++ b/docs/Output/Html/Features/Arithmetic.html @@ -350,9 +350,9 @@

      Divide two numbers

      diff --git a/docs/Output/Html/Features/Trigonometry.html b/docs/Output/Html/Features/Trigonometry.html index cd0c4d97b..4f16d665b 100644 --- a/docs/Output/Html/Features/Trigonometry.html +++ b/docs/Output/Html/Features/Trigonometry.html @@ -317,9 +317,9 @@

      Tangent

      diff --git a/docs/Output/Html/Features/Workflow/ClearingScreen.html b/docs/Output/Html/Features/Workflow/ClearingScreen.html index fb6b185b6..0c564c890 100644 --- a/docs/Output/Html/Features/Workflow/ClearingScreen.html +++ b/docs/Output/Html/Features/Workflow/ClearingScreen.html @@ -281,9 +281,9 @@

      Clear the screen

      diff --git a/docs/Output/Html/Features/Workflow/index.html b/docs/Output/Html/Features/Workflow/index.html index fb101c5da..0ba60d84c 100644 --- a/docs/Output/Html/Features/Workflow/index.html +++ b/docs/Output/Html/Features/Workflow/index.html @@ -266,9 +266,9 @@

      Workflow

      diff --git a/docs/Output/Html/Features/index.html b/docs/Output/Html/Features/index.html index d76248f6b..ea812a42d 100644 --- a/docs/Output/Html/Features/index.html +++ b/docs/Output/Html/Features/index.html @@ -278,9 +278,9 @@

      Features

      diff --git a/docs/Output/Html/img/failure.png b/docs/Output/Html/img/failure.png index 71c35403b..b622cd135 100644 Binary files a/docs/Output/Html/img/failure.png and b/docs/Output/Html/img/failure.png differ diff --git a/docs/Output/Html/img/inconclusive.png b/docs/Output/Html/img/inconclusive.png index 677add9ae..0b3bf52e0 100644 Binary files a/docs/Output/Html/img/inconclusive.png and b/docs/Output/Html/img/inconclusive.png differ diff --git a/docs/Output/Html/img/success.png b/docs/Output/Html/img/success.png index b7292d7e1..2748ec6a7 100644 Binary files a/docs/Output/Html/img/success.png and b/docs/Output/Html/img/success.png differ diff --git a/docs/Output/Html/index.html b/docs/Output/Html/index.html index 0518db3b6..c8838f5fa 100644 --- a/docs/Output/Html/index.html +++ b/docs/Output/Html/index.html @@ -256,9 +256,9 @@

      Examples

      - If you prefer to download the .zip files, you can so from the Github release page. + If you prefer to download the .zip files, you can so from the Github release page.

      + \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface.UnitTests/Properties/AssemblyInfo.cs b/src/Pickles/Pickles.UserInterface.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..1de384d1a --- /dev/null +++ b/src/Pickles/Pickles.UserInterface.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,4 @@ +using System.Reflection; + +[assembly: AssemblyTitle("Pickles.UserInterface.Test")] +[assembly: AssemblyDescription("Unit and integration tests for the Pickles UI")] \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface.UnitTests/app.config b/src/Pickles/Pickles.UserInterface.UnitTests/app.config new file mode 100644 index 000000000..61de8c5ac --- /dev/null +++ b/src/Pickles/Pickles.UserInterface.UnitTests/app.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface.UnitTests/packages.config b/src/Pickles/Pickles.UserInterface.UnitTests/packages.config new file mode 100644 index 000000000..bb492fe61 --- /dev/null +++ b/src/Pickles/Pickles.UserInterface.UnitTests/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface/CommandGeneration/CLICommandGenerator.cs b/src/Pickles/Pickles.UserInterface/CommandGeneration/CLICommandGenerator.cs new file mode 100644 index 000000000..6168238c3 --- /dev/null +++ b/src/Pickles/Pickles.UserInterface/CommandGeneration/CLICommandGenerator.cs @@ -0,0 +1,79 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright 2011 Jeffrey Cameron +// Copyright 2012-present PicklesDoc team and community contributors +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// -------------------------------------------------------------------------------------------------------------------- + +using System; +using System.Text; + +using PicklesDoc.Pickles.UserInterface.Settings; + +namespace PicklesDoc.Pickles.UserInterface.CommandGeneration +{ + public class CLICommandGenerator : CommandGeneratorBase + { + protected override string GenerateSingleCommandLine( + MainModel model, + string outputDirectory, + DocumentationFormat documentationFormat, + string selectedLanguage) + { + var result = new StringBuilder("pickles.exe"); + result.AppendFormat(" --feature-directory=\"{0}\"", model.FeatureDirectory); + result.AppendFormatIfNotEmpty(" --output-directory=\"{0}\"", outputDirectory); + result.AppendFormatIfNotEmpty(" --system-under-test-name={0}", model.ProjectName); + result.AppendFormatIfNotEmpty(" --system-under-test-version={0}", model.ProjectVersion); + + if (model.IncludeTestResults) + { + result.AppendFormatIfNotEmpty(" --link-results-file=\"{0}\"", model.TestResultsFile); + + if (model.TestResultsFormat != TestResultsFormat.NUnit) + { + result.AppendFormat(" --test-results-format={0}", model.TestResultsFormat.ToString().ToLowerInvariant()); + } + } + + if (!string.Equals(selectedLanguage, "en", StringComparison.OrdinalIgnoreCase)) + { + result.AppendFormatIfNotEmpty(" --language={0}", selectedLanguage); + } + + if (documentationFormat != DocumentationFormat.Html) + { + result.AppendFormat(" --documentation-format={0}", documentationFormat.ToString().ToLowerInvariant()); + } + + if (model.IncludeExperimentalFeatures) + { + result.Append(" --include-experimental-features"); + } + + if (!model.EnableComments) + { + result.Append(" --enableComments=false"); + } + + result.AppendFormatIfNotEmpty(" --excludeTags={0}", model.ExcludeTags); + result.AppendFormatIfNotEmpty(" --hideTags={0}", model.HideTags); + + return result.ToString(); + } + + } +} \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface/CommandGeneration/CommandGeneratorBase.cs b/src/Pickles/Pickles.UserInterface/CommandGeneration/CommandGeneratorBase.cs new file mode 100644 index 000000000..5d03d776b --- /dev/null +++ b/src/Pickles/Pickles.UserInterface/CommandGeneration/CommandGeneratorBase.cs @@ -0,0 +1,49 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright 2011 Jeffrey Cameron +// Copyright 2012-present PicklesDoc team and community contributors +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// -------------------------------------------------------------------------------------------------------------------- + +using System; +using System.IO; +using System.Linq; + +using PicklesDoc.Pickles.UserInterface.Settings; + +namespace PicklesDoc.Pickles.UserInterface.CommandGeneration +{ + public abstract class CommandGeneratorBase + { + public string Generate(MainModel model, string selectedLanguage) + { + return (from documentationFormat in model.DocumentationFormats + let outputDirectory = model.CreateDirectoryForEachOutputFormat + ? model.OutputDirectory.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar + documentationFormat + : model.OutputDirectory + ?.ToLowerInvariant() + select this.GenerateSingleCommandLine(model, outputDirectory, documentationFormat, selectedLanguage)) + .Aggregate(string.Empty, (c, n) => c + Environment.NewLine + n) + .Trim(); + } + + protected abstract string GenerateSingleCommandLine( + MainModel model, + string outputDirectory, + DocumentationFormat documentationFormat, + string selectedLanguage); + } +} \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface/CommandGeneration/PowerShellCommandGenerator.cs b/src/Pickles/Pickles.UserInterface/CommandGeneration/PowerShellCommandGenerator.cs new file mode 100644 index 000000000..b3753ac69 --- /dev/null +++ b/src/Pickles/Pickles.UserInterface/CommandGeneration/PowerShellCommandGenerator.cs @@ -0,0 +1,79 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright 2011 Jeffrey Cameron +// Copyright 2012-present PicklesDoc team and community contributors +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// -------------------------------------------------------------------------------------------------------------------- + +using System; +using System.Text; + +using PicklesDoc.Pickles.UserInterface.Settings; + +namespace PicklesDoc.Pickles.UserInterface.CommandGeneration +{ + public class PowerShellCommandGenerator : CommandGeneratorBase + { + /// + protected override string GenerateSingleCommandLine( + MainModel model, + string outputDirectory, + DocumentationFormat documentationFormat, + string selectedLanguage) + { + var result = new StringBuilder("Pickle-Features") + .AppendFormat(" -FeatureDirectory \"{0}\"", model.FeatureDirectory) + .AppendFormatIfNotEmpty(" -OutputDirectory \"{0}\"", outputDirectory) + .AppendFormatIfNotEmpty(" -SystemUnderTestName {0}", model.ProjectName) + .AppendFormatIfNotEmpty(" -SystemUnderTestVersion {0}", model.ProjectVersion); + + if (model.IncludeTestResults) + { + result.AppendFormatIfNotEmpty(" -TestResultsFile \"{0}\"", model.TestResultsFile); + + if (model.TestResultsFormat != TestResultsFormat.NUnit) + { + result.AppendFormat(" -TestResultsFormat {0}", model.TestResultsFormat.ToString().ToLowerInvariant()); + } + } + + if (!string.Equals(selectedLanguage, "en", StringComparison.OrdinalIgnoreCase)) + { + result.AppendFormatIfNotEmpty(" -Language {0}", selectedLanguage); + } + + if (documentationFormat != DocumentationFormat.Html) + { + result.AppendFormat(" -DocumentationFormat {0}", documentationFormat.ToString()); + } + + if (model.IncludeExperimentalFeatures) + { + result.Append(" -IncludeExperimentalFeatures"); + } + + if (!model.EnableComments) + { + result.Append(" -EnableComments false"); + } + + result.AppendFormatIfNotEmpty(" -ExcludeTags {0}", model.ExcludeTags); + result.AppendFormatIfNotEmpty(" -HideTags {0}", model.HideTags); + + return result.ToString(); + } + } +} \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface/CommandGeneration/StringBuilderExtensions.cs b/src/Pickles/Pickles.UserInterface/CommandGeneration/StringBuilderExtensions.cs new file mode 100644 index 000000000..af55b58c5 --- /dev/null +++ b/src/Pickles/Pickles.UserInterface/CommandGeneration/StringBuilderExtensions.cs @@ -0,0 +1,34 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// Copyright 2011 Jeffrey Cameron +// Copyright 2012-present PicklesDoc team and community contributors +// +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// -------------------------------------------------------------------------------------------------------------------- + +using System.Text; + +namespace PicklesDoc.Pickles.UserInterface.CommandGeneration +{ + public static class StringBuilderExtensions + { + public static StringBuilder AppendFormatIfNotEmpty(this StringBuilder stringBuilder, string format, string value) + { + return string.IsNullOrWhiteSpace(value) + ? stringBuilder + : stringBuilder.AppendFormat(format, value); + } + } +} \ No newline at end of file diff --git a/src/Pickles/Pickles.UserInterface/MainWindow.xaml b/src/Pickles/Pickles.UserInterface/MainWindow.xaml index a4f3b933a..d3610edb3 100644 --- a/src/Pickles/Pickles.UserInterface/MainWindow.xaml +++ b/src/Pickles/Pickles.UserInterface/MainWindow.xaml @@ -48,6 +48,7 @@ + @@ -121,6 +122,17 @@