diff --git a/CHANGELOG.md b/CHANGELOG.md index 86d54371d..ee4d94f2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt ### Fixed +- More robust scenario outline example mapping by using code from SpecFlow ([519](https://github.com/picklesdoc/pickles/pull/519)) (by [@dirkrombauts](https://github.com/dirkrombauts), based on an idea by [@janosmagyar](https://github.com/janosmagyar)) + ### Security ## [2.18.0] - 2018-02-02 diff --git a/LICENSE.txt b/LICENSE.txt index a4a9aee0c..041299343 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -52,4 +52,39 @@ If the Work includes a "NOTICE" text file as part of its distribution, then any 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. -END OF TERMS AND CONDITIONS \ No newline at end of file +END OF TERMS AND CONDITIONS + + +Pickles contains code of SpecFlow (http://specflow.org/). That code is licensed under these terms: + +SpecFlow Licence (New BSD License) + +Copyright (c) 2009, TechTalk + +Disclaimer: + * The initial codebase of Specflow was written by TechTalk employees. + No 3rd party code was included. + * No code of customer projects was used to create this project. + * TechTalk had the full rights to publish the initial codebase. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the SpecFlow project nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL TECHTALK OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/build.fsx b/build.fsx index 1910e1dac..399cd9364 100644 --- a/build.fsx +++ b/build.fsx @@ -36,25 +36,33 @@ Target "AssemblyInfo" (fun _ -> Target "BuildCmd" (fun _ -> !! "src/Pickles/Pickles.CommandLine/Pickles.CommandLine.csproj" |> MSBuildRelease cmdDir "Build" - |> Log "AppBuild-Output: " + |> Log "AppBuild-Output: "; + + CopyFiles cmdDir [ "./LICENSE.txt"; ]; ) Target "BuildMsBuild" (fun _ -> !! "src/Pickles/Pickles.MsBuild/Pickles.MsBuild.csproj" |> MSBuildRelease msBuildDir "Build" - |> Log "AppBuild-Output: " + |> Log "AppBuild-Output: "; + + CopyFiles msBuildDir [ "./LICENSE.txt"; ]; ) Target "BuildPowerShell" (fun _ -> !! "src/Pickles/Pickles.PowerShell/Pickles.PowerShell.csproj" |> MSBuildRelease powerShellDir "Build" - |> Log "AppBuild-Output: " + |> Log "AppBuild-Output: "; + + CopyFiles powerShellDir [ "./LICENSE.txt"; ]; ) Target "BuildGui" (fun _ -> !! "src/Pickles/Pickles.UserInterface/Pickles.UserInterface.csproj" |> MSBuildRelease guiDir "Build" - |> Log "AppBuild-Output: " + |> Log "AppBuild-Output: "; + + CopyFiles guiDir [ "./LICENSE.txt"; ]; ) Target "BuildTest" (fun _ -> diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromJSResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromJSResultsFile.cs index c77ffbdcc..6f239e904 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromJSResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromJSResultsFile.cs @@ -165,5 +165,11 @@ public WhenParsingCucumberJsonFromJSResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromRubyResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromRubyResultsFile.cs index d78821922..f453513f2 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromRubyResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/WhenParsingCucumberJsonFromRubyResultsFile.cs @@ -165,5 +165,11 @@ public WhenParsingCucumberJsonFromRubyResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-cucumberjs-json.json b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-cucumberjs-json.json index 66628673b..774fd6adb 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-cucumberjs-json.json +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-cucumberjs-json.json @@ -19,6 +19,7 @@ "line": 9 } ], + "type": "scenario", "steps": [ { "arguments": [], @@ -30,7 +31,7 @@ }, "result": { "status": "passed", - "duration": 3 + "duration": 2000000 } }, { @@ -43,7 +44,7 @@ }, "result": { "status": "passed", - "duration": 1 + "duration": 1000000 } }, { @@ -55,8 +56,7 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:15" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } }, { @@ -68,7 +68,8 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:15" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } }, { @@ -80,7 +81,8 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:25" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } }, { @@ -108,6 +110,7 @@ "line": 9 } ], + "type": "scenario", "steps": [ { "arguments": [], @@ -130,7 +133,8 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:15" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } }, { @@ -143,7 +147,7 @@ }, "result": { "status": "passed", - "duration": 1 + "duration": 1000000 } }, { @@ -168,7 +172,7 @@ }, "result": { "status": "passed", - "duration": 1 + "duration": 1000000 } }, { @@ -196,6 +200,7 @@ "line": 22 } ], + "type": "scenario", "steps": [ { "arguments": [], @@ -254,7 +259,8 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:30" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } } ] @@ -270,6 +276,7 @@ "line": 29 } ], + "type": "scenario", "steps": [ { "arguments": [], @@ -292,8 +299,7 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:15" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } }, { @@ -337,6 +343,7 @@ "line": 43, "name": "Not automated adding two numbers", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -396,6 +403,7 @@ "line": 8, "name": "Add two numbers", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -407,8 +415,8 @@ }, "result": { "status": "failed", - "duration": 1, - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" + "duration": 2000000, + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" } }, { @@ -479,6 +487,7 @@ "line": 23, "name": "Adding several numbers", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -490,8 +499,7 @@ }, "result": { "status": "failed", - "duration": 1, - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" } }, { @@ -574,6 +582,7 @@ "line": 24, "name": "Adding several numbers", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -585,7 +594,7 @@ }, "result": { "status": "failed", - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\AdditionSteps.js:36:12)" } }, { @@ -678,6 +687,7 @@ "line": 3, "name": "Failing Feature Passing Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -685,10 +695,11 @@ "line": 4, "name": "passing step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:14" + "location": "features\\stepdefinitions\\MinimalSteps.js:8" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } } ] @@ -699,6 +710,7 @@ "line": 6, "name": "Failing Feature Inconclusive Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -706,11 +718,10 @@ "line": 7, "name": "inconclusive step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:20" + "location": "features\\stepdefinitions\\MinimalSteps.js:14" }, "result": { - "status": "pending", - "duration": 1 + "status": "pending" } } ] @@ -721,6 +732,7 @@ "line": 9, "name": "Failing Feature Failing Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -728,11 +740,11 @@ "line": 10, "name": "failing step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:26" + "location": "features\\stepdefinitions\\MinimalSteps.js:20" }, "result": { "status": "failed", - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\MinimalSteps.js:28:20)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\MinimalSteps.js:22:20)" } } ] @@ -753,6 +765,7 @@ "line": 3, "name": "Inconclusive Feature Passing Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -760,7 +773,7 @@ "line": 4, "name": "passing step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:14" + "location": "features\\stepdefinitions\\MinimalSteps.js:8" }, "result": { "status": "passed" @@ -774,6 +787,7 @@ "line": 6, "name": "Inconclusive Feature Inconclusive Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -781,10 +795,11 @@ "line": 7, "name": "inconclusive step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:20" + "location": "features\\stepdefinitions\\MinimalSteps.js:14" }, "result": { - "status": "pending" + "status": "pending", + "duration": 1000000 } } ] @@ -805,6 +820,7 @@ "line": 3, "name": "Passing Feature Passing Scenario", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -812,7 +828,7 @@ "line": 4, "name": "passing step", "match": { - "location": "features\\stepdefinitions\\MinimalSteps.js:14" + "location": "features\\stepdefinitions\\MinimalSteps.js:8" }, "result": { "status": "passed" @@ -836,6 +852,7 @@ "line": 6, "name": "Not automated scenario 1", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -881,6 +898,7 @@ "line": 11, "name": "Not automated scenario 2", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -926,6 +944,7 @@ "line": 16, "name": "Not automated scenario 3", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -983,6 +1002,7 @@ "line": 12, "name": "This is a scenario outline where all scenarios pass", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1005,6 +1025,7 @@ "line": 13, "name": "This is a scenario outline where all scenarios pass", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1027,6 +1048,7 @@ "line": 14, "name": "This is a scenario outline where all scenarios pass", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1049,6 +1071,7 @@ "line": 25, "name": "This is a scenario outline where one scenario is inconclusive", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1071,6 +1094,7 @@ "line": 26, "name": "This is a scenario outline where one scenario is inconclusive", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1081,7 +1105,8 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } } ] @@ -1093,6 +1118,7 @@ "line": 27, "name": "This is a scenario outline where one scenario is inconclusive", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1115,6 +1141,7 @@ "line": 38, "name": "This is a scenario outline where one scenario fails", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1137,6 +1164,7 @@ "line": 39, "name": "This is a scenario outline where one scenario fails", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1159,6 +1187,7 @@ "line": 40, "name": "This is a scenario outline where one scenario fails", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1170,7 +1199,7 @@ }, "result": { "status": "failed", - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" } } ] @@ -1181,6 +1210,7 @@ "line": 49, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1202,6 +1232,7 @@ "line": 50, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1212,8 +1243,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } } ] @@ -1224,6 +1254,7 @@ "line": 54, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1245,6 +1276,7 @@ "line": 55, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1266,6 +1298,7 @@ "line": 59, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1277,7 +1310,7 @@ }, "result": { "status": "failed", - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" } } ] @@ -1288,6 +1321,7 @@ "line": 60, "name": "And we can go totally bonkers with multiple example sections.", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1299,7 +1333,7 @@ }, "result": { "status": "failed", - "error_message": "AssertionError: 'true' == 'false'\n at World. (C:\\Dev\\Code\\GitHub\\Others\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" + "error_message": "AssertionError: 'true' == 'false'\n + expected - actual\n\n -true\n +false\n\n at World. (C:\\Dev\\Code\\GitHub\\DirkRombauts\\pickles\\test-harness\\CucumberJS\\features\\stepdefinitions\\ScenarioOutlineSteps.js:19:12)" } } ] @@ -1310,6 +1344,7 @@ "line": 69, "name": "Deal correctly with backslashes in the examples", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1320,8 +1355,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:23" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } } ] @@ -1332,6 +1366,7 @@ "line": 78, "name": "Deal correctly with parenthesis in the examples", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1342,8 +1377,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:28" }, "result": { - "status": "passed", - "duration": 2 + "status": "passed" } } ] @@ -1354,6 +1388,7 @@ "line": 88, "name": "Deal correctly with overlong example values", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1365,7 +1400,7 @@ }, "result": { "status": "passed", - "duration": 1 + "duration": 1000000 } }, { @@ -1377,8 +1412,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:38" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } }, { @@ -1390,8 +1424,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } } ] @@ -1413,6 +1446,7 @@ "line": 7, "name": "This is a scenario with parentheses, hyphen and comma (10-20, 30-40)", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1448,7 +1482,7 @@ }, "result": { "status": "passed", - "duration": 1 + "duration": 2000000 } }, { @@ -1483,6 +1517,7 @@ "line": 19, "name": "This is a scenario outline with parentheses, hyphen and comma (10-20, 30-40)", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1516,6 +1551,7 @@ "line": 27, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1538,7 +1574,8 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:33" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } }, { @@ -1561,6 +1598,7 @@ "line": 28, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1606,6 +1644,7 @@ "line": 29, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1651,6 +1690,7 @@ "line": 30, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1696,6 +1736,7 @@ "line": 31, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1730,7 +1771,8 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } } ] @@ -1741,6 +1783,7 @@ "line": 32, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1775,7 +1818,8 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } } ] @@ -1786,6 +1830,7 @@ "line": 33, "name": "This scenario contains examples with Regex-special characters", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1796,7 +1841,8 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:10" }, "result": { - "status": "passed" + "status": "passed", + "duration": 1000000 } }, { @@ -1820,8 +1866,7 @@ "location": "features\\stepdefinitions\\ScenarioOutlineSteps.js:8" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } } ] @@ -1832,6 +1877,7 @@ "line": 40, "name": "This is a scenario outline with german umlauts äöüß ÄÖÜ", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1865,6 +1911,7 @@ "line": 47, "name": "This is a scenario outline with ampersand &", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1875,8 +1922,7 @@ "location": "features\\stepdefinitions\\AdditionSteps.js:10" }, "result": { - "status": "passed", - "duration": 1 + "status": "passed" } }, { @@ -1899,6 +1945,7 @@ "line": 49, "name": "This is a scenario with danish characters æøå ÆØÅ", "tags": [], + "type": "scenario", "steps": [ { "arguments": [], @@ -1916,7 +1963,7 @@ "arguments": [], "keyword": "Then ", "line": 50, - "name": "the step with danish characters like æøå and ÆØÅ shall pass", + "name": "passing step", "match": { "location": "features\\stepdefinitions\\MinimalSteps.js:8" }, @@ -1925,7 +1972,43 @@ } } ] + }, + { + "id": "scenarios-with-special-characters;this-is-a-scenario-with-spanish-characters-ñáéíóú", + "keyword": "Scenario", + "line": 52, + "name": "This is a scenario with spanish characters ñáéíóú", + "tags": [], + "type": "scenario", + "steps": [ + { + "arguments": [], + "keyword": "Given ", + "line": 5, + "name": "the calculator has clean memory", + "match": { + "location": "features\\stepdefinitions\\AdditionSteps.js:10" + }, + "result": { + "status": "passed", + "duration": 1000000 + } + }, + { + "arguments": [], + "keyword": "Then ", + "line": 53, + "name": "passing step", + "match": { + "location": "features\\stepdefinitions\\MinimalSteps.js:8" + }, + "result": { + "status": "passed", + "duration": 1000000 + } + } + ] } ] } -] \ No newline at end of file +] diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-json.json b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-json.json index ba16029d5..77a974ac9 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-json.json +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/CucumberJson/results-example-json.json @@ -23,7 +23,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 73481 } } ] @@ -51,7 +51,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 43062 } }, { @@ -63,7 +63,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 68741 } }, { @@ -75,7 +75,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 21729 } }, { @@ -87,7 +87,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 23704 } }, { @@ -99,7 +99,7 @@ }, "result": { "status": "passed", - "duration": 1049000 + "duration": 1881680 } } ] @@ -120,7 +120,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 34370 } } ] @@ -148,7 +148,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 32395 } }, { @@ -160,7 +160,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 18963 } }, { @@ -172,7 +172,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 19358 } }, { @@ -184,7 +184,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 14222 } }, { @@ -196,7 +196,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 52543 } } ] @@ -217,7 +217,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 32790 } } ] @@ -245,7 +245,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 30420 } }, { @@ -257,7 +257,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 18963 } }, { @@ -269,7 +269,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 14223 } }, { @@ -281,7 +281,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 43852 } } ] @@ -302,7 +302,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 29630 } } ] @@ -330,7 +330,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 35555 } }, { @@ -343,7 +343,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"fail\"\n got: \"this is a hacky way of making the scenario with a non-integer number\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/AdditionSteps.rb:11:in `/^I have entered (\\d+)\\.(\\d+) into the calculator$/'\nfeatures/Addition.feature:32:in `And I have entered 2.2 into the calculator'", - "duration": 16043000 + "duration": 34923076 } }, { @@ -386,7 +386,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 47013 } } ] @@ -461,7 +461,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/AdditionSteps.rb:29:in `/^the background step fails$/'\nfeatures/FailingBackground.feature:5:in `Given the background step fails'", - "duration": 0 + "duration": 413234 } }, { @@ -548,7 +548,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/AdditionSteps.rb:29:in `/^the background step fails$/'\nfeatures/FailingBackground.feature:5:in `Given the background step fails'", - "duration": 0 + "duration": 352395 } }, { @@ -646,7 +646,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/AdditionSteps.rb:29:in `/^the background step fails$/'\nfeatures/FailingBackground.feature:5:in `Given the background step fails'", - "duration": 0 + "duration": 298272 } }, { @@ -754,7 +754,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 37530 } } ] @@ -772,12 +772,12 @@ "name": "inconclusive step", "line": 7, "match": { - "location": "features/step_definitions/MinimalSteps.rb:9" + "location": "features/step_definitions/MinimalSteps.rb:5" }, "result": { "status": "pending", - "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/MinimalSteps.rb:10:in `/^inconclusive step$/'\nfeatures/Minimal Features/Failing.feature:7:in `Then inconclusive step'", - "duration": 0 + "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/MinimalSteps.rb:6:in `/^inconclusive step$/'\nfeatures/Minimal Features/Failing.feature:7:in `Then inconclusive step'", + "duration": 212543 } } ] @@ -795,12 +795,12 @@ "name": "failing step", "line": 10, "match": { - "location": "features/step_definitions/MinimalSteps.rb:13" + "location": "features/step_definitions/MinimalSteps.rb:9" }, "result": { "status": "failed", - "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/MinimalSteps.rb:14:in `/^failing step$/'\nfeatures/Minimal Features/Failing.feature:10:in `Then failing step'", - "duration": 0 + "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/MinimalSteps.rb:10:in `/^failing step$/'\nfeatures/Minimal Features/Failing.feature:10:in `Then failing step'", + "duration": 378470 } } ] @@ -832,7 +832,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 39507 } } ] @@ -850,12 +850,12 @@ "name": "inconclusive step", "line": 7, "match": { - "location": "features/step_definitions/MinimalSteps.rb:9" + "location": "features/step_definitions/MinimalSteps.rb:5" }, "result": { "status": "pending", - "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/MinimalSteps.rb:10:in `/^inconclusive step$/'\nfeatures/Minimal Features/Inconclusive.feature:7:in `Then inconclusive step'", - "duration": 0 + "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/MinimalSteps.rb:6:in `/^inconclusive step$/'\nfeatures/Minimal Features/Inconclusive.feature:7:in `Then inconclusive step'", + "duration": 249284 } } ] @@ -887,7 +887,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 32790 } } ] @@ -1118,7 +1118,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 43457 } } ] @@ -1140,7 +1140,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 40691 } } ] @@ -1162,7 +1162,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 28444 } } ] @@ -1184,7 +1184,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 45828 } } ] @@ -1206,7 +1206,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 30420 } } ] @@ -1229,7 +1229,7 @@ "result": { "status": "pending", "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/ScenarioOutlineSteps.rb:6:in `/^the scenario will 'inconclusive_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:27:in `Then the scenario will 'inconclusive_1''\nfeatures/ScenarioOutlines.feature:21:in `Then the scenario will '''", - "duration": 0 + "duration": 254420 } } ] @@ -1251,7 +1251,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 41876 } } ] @@ -1273,7 +1273,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 29629 } } ] @@ -1296,7 +1296,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/ScenarioOutlineSteps.rb:10:in `/^the scenario will 'fail_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:40:in `Then the scenario will 'fail_1''\nfeatures/ScenarioOutlines.feature:34:in `Then the scenario will '''", - "duration": 1003000 + "duration": 285234 } } ] @@ -1318,7 +1318,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 55308 } } ] @@ -1340,7 +1340,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 77432 } } ] @@ -1363,7 +1363,7 @@ "result": { "status": "pending", "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/ScenarioOutlineSteps.rb:6:in `/^the scenario will 'inconclusive_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:54:in `Then the scenario will 'inconclusive_1''\nfeatures/ScenarioOutlines.feature:45:in `Then the scenario will '''", - "duration": 0 + "duration": 151308 } } ] @@ -1386,7 +1386,7 @@ "result": { "status": "pending", "error_message": "TODO (Cucumber::Pending)\n./features/step_definitions/ScenarioOutlineSteps.rb:6:in `/^the scenario will 'inconclusive_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:55:in `Then the scenario will 'inconclusive_2''\nfeatures/ScenarioOutlines.feature:45:in `Then the scenario will '''", - "duration": 0 + "duration": 121679 } } ] @@ -1409,7 +1409,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/ScenarioOutlineSteps.rb:10:in `/^the scenario will 'fail_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:59:in `Then the scenario will 'fail_1''\nfeatures/ScenarioOutlines.feature:45:in `Then the scenario will '''", - "duration": 0 + "duration": 235061 } } ] @@ -1432,7 +1432,7 @@ "result": { "status": "failed", "error_message": "\nexpected: \"false\"\n got: \"true\"\n\n(compared using eql?)\n (RSpec::Expectations::ExpectationNotMetError)\n./features/step_definitions/ScenarioOutlineSteps.rb:10:in `/^the scenario will 'fail_(\\d+)'$/'\nfeatures/ScenarioOutlines.feature:60:in `Then the scenario will 'fail_2''\nfeatures/ScenarioOutlines.feature:45:in `Then the scenario will '''", - "duration": 1000000 + "duration": 193580 } } ] @@ -1454,7 +1454,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 19358 } } ] @@ -1476,7 +1476,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 52544 } } ] @@ -1498,7 +1498,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 39507 } }, { @@ -1510,7 +1510,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 14618 } }, { @@ -1522,7 +1522,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 13037 } } ] @@ -1553,7 +1553,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 28050 } } ] @@ -1575,7 +1575,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 41877 } }, { @@ -1587,7 +1587,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 11062 } }, { @@ -1599,7 +1599,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 13432 } }, { @@ -1611,7 +1611,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 37926 } } ] @@ -1632,7 +1632,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 33580 } } ] @@ -1654,7 +1654,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 46617 } } ] @@ -1675,7 +1675,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 23703 } } ] @@ -1697,7 +1697,7 @@ }, "result": { "status": "passed", - "duration": 1032000 + "duration": 18963 } }, { @@ -1709,7 +1709,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 11852 } } ] @@ -1730,7 +1730,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 17383 } } ] @@ -1752,7 +1752,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 15408 } }, { @@ -1764,7 +1764,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 10271 } } ] @@ -1785,7 +1785,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 13827 } } ] @@ -1807,7 +1807,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 15407 } }, { @@ -1819,7 +1819,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 10272 } } ] @@ -1840,7 +1840,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 14222 } } ] @@ -1862,7 +1862,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 14617 } }, { @@ -1874,7 +1874,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 10272 } } ] @@ -1895,7 +1895,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 108642 } } ] @@ -1917,7 +1917,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 66370 } }, { @@ -1929,7 +1929,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 34371 } } ] @@ -1950,7 +1950,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 24889 } } ] @@ -1972,7 +1972,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 18963 } }, { @@ -1984,7 +1984,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 12642 } } ] @@ -2005,7 +2005,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 13432 } } ] @@ -2027,7 +2027,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 24493 } }, { @@ -2039,7 +2039,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 11061 } } ] @@ -2060,7 +2060,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 17383 } } ] @@ -2082,7 +2082,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 13432 } } ] @@ -2103,7 +2103,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 38321 } } ] @@ -2125,7 +2125,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 15012 } } ] @@ -2146,7 +2146,7 @@ }, "result": { "status": "passed", - "duration": 0 + "duration": 40296 } } ] @@ -2161,14 +2161,57 @@ "steps": [ { "keyword": "Then ", - "name": "the scenario with danish characters like æøå and ÆØÅ shall pass", + "name": "passing step", "line": 50, "match": { - "location": "features/step_definitions/MinimalSteps.rb:5" + "location": "features/step_definitions/MinimalSteps.rb:1" + }, + "result": { + "status": "passed", + "duration": 32000 + } + } + ] + }, + { + "keyword": "Background", + "name": "", + "description": "", + "line": 4, + "type": "background", + "steps": [ + { + "keyword": "Given ", + "name": "the calculator has clean memory", + "line": 5, + "match": { + "location": "features/step_definitions/AdditionSteps.rb:1" + }, + "result": { + "status": "passed", + "duration": 39111 + } + } + ] + }, + { + "id": "scenarios-with-special-characters;this-is-a-scenario-with-spanish-characters-ñáéíóú", + "keyword": "Scenario", + "name": "This is a scenario with spanish characters ñáéíóú", + "description": "", + "line": 52, + "type": "scenario", + "steps": [ + { + "keyword": "Then ", + "name": "passing step", + "line": 53, + "match": { + "location": "features/step_definitions/MinimalSteps.rb:1" }, "result": { "status": "passed", - "duration": 0 + "duration": 12247 } } ] diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/WhenParsingMsTestResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/WhenParsingMsTestResultsFile.cs index c03e2542f..c77e196f6 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/WhenParsingMsTestResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/WhenParsingMsTestResultsFile.cs @@ -171,5 +171,11 @@ public WhenParsingMsTestResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/results-example-mstest.trx b/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/results-example-mstest.trx index b2f9f6723..7f98d9db1 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/results-example-mstest.trx +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/MsTest/results-example-mstest.trx @@ -1,8 +1,8 @@  - + These are default test settings for a local test run. - + @@ -10,14 +10,14 @@ - + - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -32,25 +32,25 @@ [] - + Not automated scenario 1 - + FeatureTitle Not Automated At All - + Adding several numbers - + Parameter:first number @@ -77,11 +77,11 @@ Addition - + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -96,22 +96,22 @@ fail_2 - + Not automated scenario 3 - + FeatureTitle Not Automated At All - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -126,22 +126,22 @@ .* - + This is a scenario with parentheses, hyphen and comma (10-20, 30-40) - + FeatureTitle Scenarios With Special Characters - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -156,33 +156,33 @@ ++ - + Add two numbers - + FeatureTitle Failing Background - + Failing Feature Inconclusive Scenario - + FeatureTitle Failing - + This is a scenario outline with parentheses, hyphen and comma (10-20, 30-40) - + FeatureTitle @@ -197,33 +197,33 @@ pass_1 - + Inconclusive Feature Inconclusive Scenario - + FeatureTitle Inconclusive - + Failing Feature Passing Scenario - + FeatureTitle Failing - + Deal correctly with backslashes in the examples - + FeatureTitle @@ -238,11 +238,11 @@ c:\Temp\ - + This is a scenario outline where one scenario fails - + FeatureTitle @@ -257,11 +257,11 @@ pass_2 - + This is a scenario outline with german umlauts äöüß ÄÖÜ - + FeatureTitle @@ -276,11 +276,11 @@ pass_1 - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -295,11 +295,11 @@ ^.*(?<foo>BAR)\s[^0-9]{3,4}A+$ - + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -314,22 +314,22 @@ fail_1 - + This is a scenario with danish characters æøå ÆØÅ - + FeatureTitle Scenarios With Special Characters - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -344,14 +344,14 @@ () - + Adding several numbers - + Parameter:first number @@ -378,11 +378,11 @@ Addition - + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -397,22 +397,22 @@ pass_2 - + Failing Feature Failing Scenario - + FeatureTitle Failing - + Deal correctly with parenthesis in the examples - + FeatureTitle @@ -427,11 +427,11 @@ This is a description (and more) - + This is a scenario outline where one scenario is inconclusive - + FeatureTitle @@ -446,11 +446,11 @@ pass_1 - + This is a scenario outline where all scenarios pass - + FeatureTitle @@ -465,22 +465,22 @@ pass_2 - + Inconclusive Feature Passing Scenario - + FeatureTitle Inconclusive - + This is a scenario outline where one scenario is inconclusive - + FeatureTitle @@ -495,21 +495,21 @@ inconclusive_1 - + - + FeatureTitle Addition - + This is a scenario outline with ampersand & - + FeatureTitle @@ -524,25 +524,25 @@ pass_1 - + Add two numbers - + FeatureTitle Addition - + This is a scenario outline where one scenario is inconclusive - + FeatureTitle @@ -557,11 +557,11 @@ pass_2 - + This is a scenario outline where one scenario fails - + FeatureTitle @@ -576,11 +576,11 @@ fail_1 - + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -595,11 +595,11 @@ inconclusive_2 - + Adding several numbers - + Parameter:first number @@ -626,22 +626,22 @@ Failing Background - + Not automated scenario 2 - + FeatureTitle Not Automated At All - + This is a scenario outline where all scenarios pass - + FeatureTitle @@ -656,11 +656,11 @@ pass_1 - + Deal correctly with overlong example values - + FeatureTitle @@ -679,11 +679,11 @@ This is just a very very very veery long error message! - + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -698,22 +698,22 @@ pass_1 - + Passing Feature Passing Scenario - + FeatureTitle Passing - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -728,11 +728,11 @@ ** - + This is a scenario outline where all scenarios pass - + FeatureTitle @@ -747,11 +747,11 @@ pass_3 - + This is a scenario outline where one scenario fails - + FeatureTitle @@ -766,11 +766,11 @@ pass_1 - + This scenario contains examples with Regex-special characters - + FeatureTitle @@ -785,11 +785,11 @@ {} - + Adding several numbers - + Parameter:first number @@ -816,36 +816,47 @@ Failing Background - + Fail to add two numbers - + FeatureTitle Addition - + Not automated adding two numbers - + FeatureTitle Addition - + + + + This is a scenario with spanish characters ñáéíóú + + + + FeatureTitle + Scenarios With Special Characters + + + And we can go totally bonkers with multiple example sections. - + FeatureTitle @@ -860,7 +871,7 @@ inconclusive_1 - + @@ -868,57 +879,58 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -934,7 +946,7 @@ Then the result should be 180 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(180) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -950,7 +962,7 @@ Then the result should be 260 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(260) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -964,7 +976,7 @@ Then the result should be 3 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(3) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -975,33 +987,33 @@ And I have entered 2.2 into the calculator When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 3.2 on the screen --> error: Inputstrengen var ikke i et korrekt format. +-> error: Input string was not in a correct format. Test method Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers threw exception: -System.FormatException: Inputstrengen var ikke i et korrekt format. - ved System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) - ved System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) - ved System.String.System.IConvertible.ToInt32(IFormatProvider provider) - ved System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(Type typeToConvertTo, Object value, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(IBindingType typeToConvertTo, Object value, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.Convert(Object value, IBindingType typeToConvertTo, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ConvertArg(Object value, IBindingType typeToConvertTo) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.<>c__DisplayClass5.<GetExecuteArguments>b__4(Object arg, Int32 argIndex) - ved System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:linje 34 +System.FormatException: Input string was not in a correct format. + at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) + at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) + at System.String.System.IConvertible.ToInt32(IFormatProvider provider) + at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(Type typeToConvertTo, Object value, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(IBindingType typeToConvertTo, Object value, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.Convert(Object value, IBindingType typeToConvertTo, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ConvertArg(Object value, IBindingType typeToConvertTo) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.<>c__DisplayClass5.<GetExecuteArguments>b__4(Object arg, Int32 argIndex) + at System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:line 34 - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1058,19 +1070,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.AdditionFeature.NotAutomatedAddingTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:linje 46 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.AdditionFeature.NotAutomatedAddingTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:line 46 - + Given the background step fails -> error: @@ -1099,27 +1111,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 19 - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_40() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 19 + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_40() - + Given the background step fails -> error: @@ -1148,27 +1160,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 19 - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_60() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 19 + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_60() - + Given the background step fails -> error: @@ -1195,26 +1207,26 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 12 + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 12 - + Then failing step -> error: @@ -1231,82 +1243,82 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:linje 30 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:linje 10 + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:line 24 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:line 10 - + Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() Assert.Inconclusive failed. One or more step definitions are not implemented yet. MinimalSteps.ThenInconclusiveStep() - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:linje 7 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:line 7 - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) - + Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() Assert.Inconclusive failed. One or more step definitions are not implemented yet. MinimalSteps.ThenInconclusiveStep() - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Inconclusive.feature:linje 7 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Inconclusive.feature:line 7 - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -1369,19 +1381,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario1() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 9 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario1() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 9 - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -1444,19 +1456,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario2() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 14 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario2() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 14 - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -1519,73 +1531,73 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario3() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 19 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario3() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 19 - + - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'inconclusive_1' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_1() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_1() - + Then the scenario will 'inconclusive_2' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_2() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_2() - + Then the scenario will 'fail_1' -> error: @@ -1602,27 +1614,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_1() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_1() - + Then the scenario will 'fail_2' -> error: @@ -1639,33 +1651,33 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_2() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_2() - + When I have backslashes in the value, for example a 'c:\Temp\' -> done: ScenarioOutlineSteps.WhenIHaveBackslashesInTheValueForExampleAFilePath("c:\Temp\") (0,0s) - + When I have a field with value 'Please enter a valid two letter country code (e.g. DE)!' -> done: ScenarioOutlineSteps.WhenIHaveAFieldWithValue("Please enter a va...") (0,0s) @@ -1675,31 +1687,31 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + When I have parenthesis in the value, for example an 'This is a description (and more)' -> done: ScenarioOutlineSteps.WhenIHaveParenthesisInTheValueForExampleAnOverlyDescriptiveField("This is a descrip...") (0,0s) - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'pass_3' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_3") (0,0s) - + Then the scenario will 'fail_1' -> error: @@ -1716,71 +1728,71 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 34 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails_Fail_1() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 34 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails_Fail_1() - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'inconclusive_1' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 21 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive_Inconclusive_1() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 21 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive_Inconclusive_1() - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1788,7 +1800,7 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1796,7 +1808,7 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1804,15 +1816,15 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the step with danish characters like æøå and ÆØÅ shall pass --> done: MinimalSteps.ThenPassingDanishStep() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1826,7 +1838,15 @@ Then the result should be 120 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(120) (0,0s) - + + + Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) + + + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1836,7 +1856,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1846,7 +1866,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1856,7 +1876,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1866,7 +1886,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1876,7 +1896,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -1886,7 +1906,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/WhenParsingNUnitResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/WhenParsingNUnitResultsFile.cs index 3246884b0..9a9579868 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/WhenParsingNUnitResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/WhenParsingNUnitResultsFile.cs @@ -166,5 +166,11 @@ public WhenParsingNUnitResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/results-example-nunit.xml b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/results-example-nunit.xml index 711b718fa..eaab0f41b 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/results-example-nunit.xml +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit2/results-example-nunit.xml @@ -1,25 +1,25 @@ - - - - + + + + - + - + - + - + - + - - + + @@ -27,24 +27,24 @@ - + - - d__5`2.MoveNext() -ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) -ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) -ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) -ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) -ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() -ved Pickles.TestHarness.nunit.AdditionFeature.ScenarioCleanup() -ved Pickles.TestHarness.nunit.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit\Addition.feature:linje 34 + + d__5`2.MoveNext() +at System.Linq.Buffer`1..ctor(IEnumerable`1 source) +at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) +at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) +at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) +at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() +at Pickles.TestHarness.nunit.AdditionFeature.ScenarioCleanup() +at Pickles.TestHarness.nunit.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit\Addition.feature:line 34 ]]> @@ -53,7 +53,7 @@ ved Pickles.TestHarness.nunit.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Cod - + - + - + - + - @@ -121,16 +121,16 @@ The checked value: [True] The expected value: [False]]]> - @@ -144,24 +144,24 @@ The checked value: [True] The expected value: [False]]]> - - + - + @@ -171,31 +171,31 @@ The checked value: [True] The expected value: [False]]]> - - + - + - + - + @@ -211,9 +211,9 @@ ved Pickles.TestHarness.nunit.MinimalFeatures.FailingFeature.FailingFeatureFaili - + - + - + - + - + - + - + @@ -332,7 +332,7 @@ namespace MyNamespace ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2")]]> - + - @@ -361,46 +361,46 @@ The checked value: [True] The expected value: [False]]]> - - + - + - + - + - + - + - + - + - + @@ -410,22 +410,22 @@ The checked value: [True] The expected value: [False]]]> - - + @@ -439,11 +439,11 @@ ved Pickles.TestHarness.nunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWher - + - + @@ -456,11 +456,12 @@ ved Pickles.TestHarness.nunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWher - + - + + - + diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/WhenParsingNunit3ResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/WhenParsingNunit3ResultsFile.cs index d8a3c7b11..2929a51ec 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/WhenParsingNunit3ResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/WhenParsingNunit3ResultsFile.cs @@ -135,5 +135,11 @@ public WhenParsingNunit3ResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit2-with-nunit3-runner.xml b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit2-with-nunit3-runner.xml index 493f26573..227b1bbac 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit2-with-nunit3-runner.xml +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit2-with-nunit3-runner.xml @@ -1,69 +1,69 @@  - - - + + + - + - + - + - + - + - + - - + + - + - + - - d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.nunit.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.nunit.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit\Addition.feature:linje 34]]> + + d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.nunit.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.nunit.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit\Addition.feature:line 34]]> - + @@ -72,7 +72,7 @@ - + @@ -109,21 +109,21 @@ namespace MyNamespace - + - + - + - + - + - + - + @@ -175,31 +175,31 @@ The checked value: [True] The expected value: [False]]]> - + - + - + - + @@ -210,19 +210,19 @@ The checked value: [True] The expected value: [False]]]> - + - + @@ -231,17 +231,17 @@ The expected value: MinimalSteps.ThenInconclusiveStep()]]> - + - + - + @@ -250,28 +250,28 @@ The expected value: MinimalSteps.ThenInconclusiveStep()]]> - + - + - + - + - + @@ -307,7 +307,7 @@ namespace MyNamespace ]]> - + @@ -343,7 +343,7 @@ namespace MyNamespace ]]> - + @@ -380,35 +380,35 @@ namespace MyNamespace - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - + - - - + + + @@ -519,49 +519,54 @@ The expected value: - + - + - + - + - + - + - + - + - + - + + + + + + - - - - - - - + + + + + + + diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit3.xml b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit3.xml index 626db4185..9ac813026 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit3.xml +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/NUnit/NUnit3/results-example-nunit3.xml @@ -1,11 +1,11 @@  - - - - + + + + - + @@ -13,37 +13,37 @@ - + - + - + - + - + - + - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 60 into the calculator @@ -58,7 +58,7 @@ Then the result should be 260 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(260) (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 40 into the calculator @@ -74,7 +74,7 @@ Then the result should be 180 on the screen ]]> - + @@ -91,25 +91,25 @@ Then the result should be 3 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(3) (0,0s) ]]> - + - - d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.nunit3.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.nunit3.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit3\Addition.feature:linje 34]]> + + d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.nunit3.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.nunit3.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\nunit3\Addition.feature:line 34]]> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -120,10 +120,10 @@ And I have entered 2.2 into the calculator When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 3.2 on the screen --> error: Inputstrengen var ikke i et korrekt format. +-> error: Input string was not in a correct format. ]]> - + @@ -132,7 +132,7 @@ Then the result should be 3.2 on the screen - + @@ -196,21 +196,21 @@ Then unimplemented step ]]> - + - + - + - + error: @@ -250,7 +250,7 @@ Then the result should be 260 on the screen -> skipped because of previous errors ]]> - + - + error: @@ -291,7 +291,7 @@ Then the result should be 180 on the screen ]]> - + @@ -302,16 +302,16 @@ The checked value: [True] The expected value: [False]]]> - + error: @@ -333,18 +333,18 @@ Then the result should be 120 on the screen ]]> - + - + - + @@ -355,16 +355,16 @@ The checked value: [True] The expected value: [False]]]> - + error: @@ -375,7 +375,7 @@ The expected value: [False] ]]> - + @@ -387,7 +387,7 @@ The expected value: -> pending: MinimalSteps.ThenInconclusiveStep() ]]> - + @@ -396,11 +396,11 @@ The expected value: ]]> - + - + @@ -412,7 +412,7 @@ The expected value: -> pending: MinimalSteps.ThenInconclusiveStep() ]]> - + @@ -421,11 +421,11 @@ The expected value: ]]> - + - + @@ -435,31 +435,31 @@ The expected value: - + - + - - + + error: Objektreferencen er ikke indstillet til en forekomst af et objekt. +-> error: Object reference not set to an instance of an object. And I have entered 70 into the calculator -> skipped because of previous errors When I press add @@ -469,31 +469,31 @@ Then the result should be 120 on the screen ]]> - + - + - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) ]]> - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) ]]> - + @@ -502,7 +502,7 @@ Then the result should be 120 on the screen -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") ]]> - + @@ -511,7 +511,7 @@ Then the result should be 120 on the screen -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") ]]> - + - + error: @@ -539,7 +539,7 @@ The expected value: [False] ]]> - + - + error: @@ -568,21 +568,21 @@ The expected value: ]]> - + - + done: ScenarioOutlineSteps.WhenIHaveBackslashesInTheValueForExampleAFilePath("c:\Temp\") (0,0s) ]]> - + - + done: ScenarioOutlineSteps.WhenIHaveAFieldWithValue("Please enter a va...") (0,0s) And I have a field with value 'This is just a very very very veery long error message!' @@ -592,54 +592,54 @@ Then the scenario will 'pass_1' ]]> - + - + done: ScenarioOutlineSteps.WhenIHaveParenthesisInTheValueForExampleAnOverlyDescriptiveField("This is a descrip...") (0,0s) ]]> - + - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) ]]> - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) ]]> - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_3") (0,0s) ]]> - + - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) ]]> - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) ]]> - + - + error: @@ -668,21 +668,21 @@ The expected value: ]]> - + - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) ]]> - + done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) ]]> - + @@ -693,15 +693,15 @@ The expected value: - + - + - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Then the scenario will 'pass_1' @@ -709,11 +709,11 @@ Then the scenario will 'pass_1' ]]> - + - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Then the scenario will 'pass_1' @@ -721,11 +721,11 @@ Then the scenario will 'pass_1' ]]> - + - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Then the scenario will 'pass_1' @@ -733,17 +733,17 @@ Then the scenario will 'pass_1' ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the step with danish characters like æøå and ÆØÅ shall pass --> done: MinimalSteps.ThenPassingDanishStep() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + @@ -759,11 +759,21 @@ Then the result should be 120 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(120) (0,0s) ]]> - + + + + + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) +]]> + + - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '**' @@ -772,7 +782,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '++' @@ -781,7 +791,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '.*' @@ -790,7 +800,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '[]' @@ -799,7 +809,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '{}' @@ -808,7 +818,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '()' @@ -817,7 +827,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) ]]> - + done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '^.*(?BAR)\s[^0-9]{3,4}A+$' diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/WhenParsingSpecRunTestResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/WhenParsingSpecRunTestResultsFile.cs index 143877e35..418432f24 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/WhenParsingSpecRunTestResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/WhenParsingSpecRunTestResultsFile.cs @@ -143,5 +143,11 @@ public WhenParsingSpecRunTestResultsFile() //{ // base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); //} + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/results-example-specrun.html b/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/results-example-specrun.html index a25f6f553..246dc3dbb 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/results-example-specrun.html +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/SpecRun/results-example-specrun.html @@ -1,4 +1,4 @@ - + @@ -235,9 +235,13 @@ <title>This is a scenario with danish characters æøå ÆØÅ</title> <result>Passed</result> </scenario> + <scenario> + <title>This is a scenario with spanish characters ñáéíóú</title> + <result>Passed</result> + </scenario> </scenarios> </feature> </features> Pickles End --> - + \ No newline at end of file diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/StandardTestSuite.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/StandardTestSuite.cs index a78174309..c7cc64f73 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/StandardTestSuite.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/StandardTestSuite.cs @@ -289,7 +289,20 @@ public void ThenCanReadResultOfScenarioWithDanishCharacters() var feature = new Feature { Name = "Scenarios With Special Characters" }; - var scenario = new Scenario {Name = "This is a scenario with danish characters æøå ÆØÅ", Feature = feature }; + var scenario = new Scenario { Name = "This is a scenario with danish characters æøå ÆØÅ", Feature = feature }; + + var actualResult = results.GetScenarioResult(scenario); + + Check.That(actualResult).IsEqualTo(TestResult.Passed); + } + + public void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + var results = ParseResultsFile(); + + var feature = new Feature { Name = "Scenarios With Special Characters" }; + + var scenario = new Scenario { Name = "This is a scenario with spanish characters ñáéíóú", Feature = feature }; var actualResult = results.GetScenarioResult(scenario); diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/WhenParsingVsTestResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/WhenParsingVsTestResultsFile.cs index 65d381597..f3d85a7fc 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/WhenParsingVsTestResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/WhenParsingVsTestResultsFile.cs @@ -171,5 +171,11 @@ public WhenParsingVsTestResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/results-example-vstest.trx b/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/results-example-vstest.trx index 49652503b..ca44422f7 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/results-example-vstest.trx +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/VsTest/results-example-vstest.trx @@ -1,15 +1,15 @@  - - - + + + - + - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -25,7 +25,7 @@ Then the result should be 260 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(260) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -41,7 +41,7 @@ Then the result should be 180 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(180) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -55,7 +55,7 @@ Then the result should be 3 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(3) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -66,34 +66,34 @@ And I have entered 2.2 into the calculator When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 3.2 on the screen --> error: Inputstrengen var ikke i et korrekt format. +-> error: Input string was not in a correct format. Test method Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers threw exception: -System.FormatException: Inputstrengen var ikke i et korrekt format. - ved System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) - ved System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) - ved System.String.System.IConvertible.ToInt32(IFormatProvider provider) - ved System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(Type typeToConvertTo, Object value, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(IBindingType typeToConvertTo, Object value, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.Convert(Object value, IBindingType typeToConvertTo, CultureInfo cultureInfo) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ConvertArg(Object value, IBindingType typeToConvertTo) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.<>c__DisplayClass5.<GetExecuteArguments>b__4(Object arg, Int32 argIndex) - ved System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:linje 34 +System.FormatException: Input string was not in a correct format. + at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) + at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) + at System.String.System.IConvertible.ToInt32(IFormatProvider provider) + at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(Type typeToConvertTo, Object value, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.ConvertSimple(IBindingType typeToConvertTo, Object value, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Bindings.StepArgumentTypeConverter.Convert(Object value, IBindingType typeToConvertTo, CultureInfo cultureInfo) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ConvertArg(Object value, IBindingType typeToConvertTo) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.<>c__DisplayClass5.<GetExecuteArguments>b__4(Object arg, Int32 argIndex) + at System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:line 34 - - + + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -150,19 +150,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.AdditionFeature.NotAutomatedAddingTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:linje 46 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.AdditionFeature.NotAutomatedAddingTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Addition.feature:line 46 - + Given the background step fails -> error: @@ -189,26 +189,26 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 12 + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 12 - + Given the background step fails -> error: @@ -237,27 +237,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 19 - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_60() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 19 + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_60() - + Given the background step fails -> error: @@ -286,27 +286,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:linje 19 - ved Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_40() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\FailingBackground.feature:line 19 + at Pickles.TestHarness.MsTest.FailingBackgroundFeature.AddingSeveralNumbers_40() - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -369,19 +369,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario1() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 9 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario1() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 9 - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -444,19 +444,19 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario2() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 14 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario2() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 14 - + Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -519,81 +519,81 @@ namespace MyNamespace } } - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario3() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:linje 19 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.NotAutomatedAtAllFeature.NotAutomatedScenario3() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\NotAutomatedAtAll.feature:line 19 - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'pass_3' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_3") (0,0s) - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'inconclusive_1' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 21 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive_Inconclusive_1() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 21 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive_Inconclusive_1() - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'fail_1' -> error: @@ -610,79 +610,79 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 34 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails_Fail_1() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 34 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails_Fail_1() - + Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) - + Then the scenario will 'inconclusive_1' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_1() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_1() - + Then the scenario will 'inconclusive_2' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") Assert.Inconclusive failed. One or more step definitions are not implemented yet. ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_2() + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_2() - + Then the scenario will 'fail_1' -> error: @@ -699,27 +699,27 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_1() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_1() - + Then the scenario will 'fail_2' -> error: @@ -736,39 +736,39 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved lambda_method(Closure , IContextManager , String ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:linje 45 - ved Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_2() + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at lambda_method(Closure , IContextManager , String ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\ScenarioOutlines.feature:line 45 + at Pickles.TestHarness.MsTest.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet2_Fail_2() - + When I have backslashes in the value, for example a 'c:\Temp\' -> done: ScenarioOutlineSteps.WhenIHaveBackslashesInTheValueForExampleAFilePath("c:\Temp\") (0,0s) - + When I have parenthesis in the value, for example an 'This is a description (and more)' -> done: ScenarioOutlineSteps.WhenIHaveParenthesisInTheValueForExampleAnOverlyDescriptiveField("This is a descrip...") (0,0s) - + When I have a field with value 'Please enter a valid two letter country code (e.g. DE)!' -> done: ScenarioOutlineSteps.WhenIHaveAFieldWithValue("Please enter a va...") (0,0s) @@ -778,8 +778,8 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - - + + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -793,7 +793,7 @@ Then the result should be 120 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(120) (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -801,7 +801,7 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -811,7 +811,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -821,7 +821,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -831,7 +831,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -841,7 +841,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -851,7 +851,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -861,7 +861,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -871,7 +871,7 @@ Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -879,7 +879,7 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) @@ -887,40 +887,48 @@ Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) - + Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the step with danish characters like æøå and ÆØÅ shall pass --> done: MinimalSteps.ThenPassingDanishStep() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) + + + + + Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) - + Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() Assert.Inconclusive failed. One or more step definitions are not implemented yet. MinimalSteps.ThenInconclusiveStep() - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:linje 7 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:line 7 - + Then failing step -> error: @@ -937,51 +945,51 @@ The checked value: [True] The expected value: [False] - ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) - ved NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:linje 30 - ved lambda_method(Closure , IContextManager ) - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:linje 10 + at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.ObjectCheckExtensions.<>c__DisplayClass1`1.<IsEqualTo>b__0() + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, Object expected) + at NFluent.ObjectCheckExtensions.IsEqualTo[T](ICheck`1 check, T expected) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:line 24 + at lambda_method(Closure , IContextManager ) + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Failing.feature:line 10 - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) - + Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() Assert.Inconclusive failed. One or more step definitions are not implemented yet. MinimalSteps.ThenInconclusiveStep() - ved lambda_method(Closure , String , Object[] ) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) - ved TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() - ved Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() - ved Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Inconclusive.feature:linje 7 + at lambda_method(Closure , String , Object[] ) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestInconclusive(String message) + at TechTalk.SpecFlow.UnitTestProvider.MsTestRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.ErrorHandling.ErrorProvider.ThrowPendingError(TestStatus testStatus, String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors() + at Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() + at Pickles.TestHarness.MsTest.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\MsTest\Minimal Features\Inconclusive.feature:line 7 - + Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) @@ -993,268 +1001,273 @@ The expected value: - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + Test 'IgnoredAddingTwoNumbers' was skipped in the test run.Test 'NotAutomatedAddingTwoNumbers' was skipped in the test run.Test 'NotAutomatedScenario1' was skipped in the test run.Test 'NotAutomatedScenario2' was skipped in the test run.Test 'NotAutomatedScenario3' was skipped in the test run.Test 'ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive_Inconclusive_1' was skipped in the test run.Test 'AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_1' was skipped in the test run.Test 'AndWeCanGoTotallyBonkersWithMultipleExampleSections__ExampleSet1_Inconclusive_2' was skipped in the test run.Test 'FailingFeatureInconclusiveScenario' was skipped in the test run.Test 'InconclusiveFeatureInconclusiveScenario' was skipped in the test run. diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/WhenParsingxUnitResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/WhenParsingxUnitResultsFile.cs index bdbd7aad3..02ac488a2 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/WhenParsingxUnitResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/WhenParsingxUnitResultsFile.cs @@ -141,5 +141,11 @@ public WhenParsingxUnitResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithAmpersand(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/results-example-xunit.xml b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/results-example-xunit.xml index 4f2ff63d5..dc9bb99a1 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/results-example-xunit.xml +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit1/results-example-xunit.xml @@ -1,14 +1,25 @@ -Given the calculator has clean memory +IgnoredGiven the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 1 into the calculator -> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(1) (0,0s) -And I have entered 2 into the calculator --> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(2) (0,0s) +And I have entered 2.2 into the calculator +-> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(2,2) (0,0s) When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) -Then the result should be 3 on the screen --> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(3) (0,1s) -Given the calculator has clean memory +Then the result should be 3.2 on the screen +-> error: Input string was not in a correct format. +System.FormatException : Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) + at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) + at System.String.System.IConvertible.ToInt32(IFormatProvider provider) + at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) + at System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Addition.feature:line 34Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 60 into the calculator -> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(60) (0,0s) @@ -19,7 +30,7 @@ And I have entered 130 into the calculator When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 260 on the screen --> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(260) (0,0s) +-> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(260) (0,1s) Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 40 into the calculator @@ -32,7 +43,7 @@ When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 180 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(180) (0,0s) -Given the calculator has clean memory +Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: @@ -86,31 +97,20 @@ namespace MyNamespace } } } - ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.AdditionFeature.NotAutomatedAddingTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Addition.feature:linje 46IgnoredGiven the calculator has clean memory + at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.AdditionFeature.NotAutomatedAddingTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Addition.feature:line 46Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 1 into the calculator -> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(1) (0,0s) -And I have entered 2.2 into the calculator --> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(2,2) (0,0s) +And I have entered 2 into the calculator +-> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(2) (0,0s) When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) -Then the result should be 3.2 on the screen --> error: Inputstrengen var ikke i et korrekt format. -System.FormatException : Inputstrengen var ikke i et korrekt format. ved System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) - ved System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) - ved System.String.System.IConvertible.ToInt32(IFormatProvider provider) - ved System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) - ved System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Addition.feature:linje 34Given the background step fails +Then the result should be 3 on the screen +-> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(3) (0,0s) +Given the background step fails -> error: The checked value is different from the expected one. The checked value: @@ -119,29 +119,31 @@ The expected value: [False] And the calculator has clean memory -> skipped because of previous errors -Given I have entered 50 into the calculator +Given I have entered 60 into the calculator -> skipped because of previous errors And I have entered 70 into the calculator -> skipped because of previous errors +And I have entered 130 into the calculator +-> skipped because of previous errors When I press add -> skipped because of previous errors -Then the result should be 120 on the screen +Then the result should be 260 on the screen -> skipped because of previous errors NFluent.FluentCheckException : The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.AddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:linje 12Given the background step fails + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:line 19Given the background step fails -> error: The checked value is different from the expected one. The checked value: @@ -150,31 +152,31 @@ The expected value: [False] And the calculator has clean memory -> skipped because of previous errors -Given I have entered 60 into the calculator +Given I have entered 40 into the calculator -> skipped because of previous errors -And I have entered 70 into the calculator +And I have entered 50 into the calculator -> skipped because of previous errors -And I have entered 130 into the calculator +And I have entered 90 into the calculator -> skipped because of previous errors When I press add -> skipped because of previous errors -Then the result should be 260 on the screen +Then the result should be 180 on the screen -> skipped because of previous errors NFluent.FluentCheckException : The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:linje 19Given the background step fails + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:line 19Given the background step fails -> error: The checked value is different from the expected one. The checked value: @@ -183,31 +185,29 @@ The expected value: [False] And the calculator has clean memory -> skipped because of previous errors -Given I have entered 40 into the calculator --> skipped because of previous errors -And I have entered 50 into the calculator +Given I have entered 50 into the calculator -> skipped because of previous errors -And I have entered 90 into the calculator +And I have entered 70 into the calculator -> skipped because of previous errors When I press add -> skipped because of previous errors -Then the result should be 180 on the screen +Then the result should be 120 on the screen -> skipped because of previous errors NFluent.FluentCheckException : The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:linje 25 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.FailingBackgroundFeature.AddingSeveralNumbers(String firstNumber, String secondNumber, String thirdNumber, String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:linje 19Given unimplemented step + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.AdditionSteps.GivenTheBackgroundStepFails() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\AdditionSteps.cs:line 25 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.FailingBackgroundFeature.AddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\FailingBackground.feature:line 12Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: [Given(@"unimplemented step")] public void GivenUnimplementedStep() @@ -267,10 +267,10 @@ namespace MyNamespace } } } - ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario3() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:linje 19Given unimplemented step + at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario1() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:line 9Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: [Given(@"unimplemented step")] public void GivenUnimplementedStep() @@ -330,10 +330,10 @@ namespace MyNamespace } } } - ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario1() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:linje 9Given unimplemented step + at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario2() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:line 14Given unimplemented step -> No matching step definition found for the step. Use the following code to create one: [Given(@"unimplemented step")] public void GivenUnimplementedStep() @@ -393,72 +393,40 @@ namespace MyNamespace } } } - ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario2() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:linje 14Then the scenario will 'pass_1' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Then the scenario will 'pass_2' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) -Then the scenario will 'inconclusive_1' --> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") -TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. - ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 21Then the scenario will 'pass_1' + at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.NotAutomatedAtAllFeature.NotAutomatedScenario3() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\NotAutomatedAtAll.feature:line 19When I have parenthesis in the value, for example an 'This is a description (and more)' +-> done: ScenarioOutlineSteps.WhenIHaveParenthesisInTheValueForExampleAnOverlyDescriptiveField("This is a descrip...") (0,0s) +Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Then the scenario will 'pass_2' +Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) -Then the scenario will 'fail_1' --> error: -The checked value is different from the expected one. -The checked value: - [True] -The expected value: - [False] -NFluent.FluentCheckException : -The checked value is different from the expected one. -The checked value: - [True] -The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 34When I have a field with value 'Please enter a valid two letter country code (e.g. DE)!' +Then the scenario will 'pass_3' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_3") (0,0s) +When I have backslashes in the value, for example a 'c:\Temp\' +-> done: ScenarioOutlineSteps.WhenIHaveBackslashesInTheValueForExampleAFilePath("c:\Temp\") (0,0s) +When I have a field with value 'Please enter a valid two letter country code (e.g. DE)!' -> done: ScenarioOutlineSteps.WhenIHaveAFieldWithValue("Please enter a va...") (0,0s) And I have a field with value 'This is just a very very very veery long error message!' -> done: ScenarioOutlineSteps.WhenIHaveAFieldWithValue("This is just a ve...") (0,0s) Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -When I have backslashes in the value, for example a 'c:\Temp\' --> done: ScenarioOutlineSteps.WhenIHaveBackslashesInTheValueForExampleAFilePath("c:\Temp\") (0,0s) -Then the scenario will 'pass_1' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Then the scenario will 'pass_2' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) -Then the scenario will 'pass_3' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_3") (0,0s) Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) Then the scenario will 'pass_2' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) -Then the scenario will 'inconclusive_1' +Then the scenario will 'inconclusive_1' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. - ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 45Then the scenario will 'inconclusive_2' + ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 45Then the scenario will 'inconclusive_2' -> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. - ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 45Then the scenario will 'fail_1' + ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_2") at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 45Then the scenario will 'fail_1' -> error: The checked value is different from the expected one. The checked value: @@ -470,16 +438,16 @@ The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 45Then the scenario will 'fail_2' + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 45Then the scenario will 'fail_2' -> error: The checked value is different from the expected one. The checked value: @@ -491,29 +459,53 @@ The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:linje 19 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:linje 45When I have parenthesis in the value, for example an 'This is a description (and more)' --> done: ScenarioOutlineSteps.WhenIHaveParenthesisInTheValueForExampleAnOverlyDescriptiveField("This is a descrip...") (0,0s) -Given the calculator has clean memory --> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the scenario will 'pass_1' + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.AndWeCanGoTotallyBonkersWithMultipleExampleSections_(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 45Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Given the calculator has clean memory +Then the scenario will 'pass_2' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) +Then the scenario will 'fail_1' +-> error: +The checked value is different from the expected one. +The checked value: + [True] +The expected value: + [False] +NFluent.FluentCheckException : +The checked value is different from the expected one. +The checked value: + [True] +The expected value: + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.ScenarioOutlineSteps.ThenTheScenarioWill(String result) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\ScenarioOutlineSteps.cs:line 19 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioFails(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 34Then the scenario will 'pass_1' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) +Then the scenario will 'pass_2' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_2") (0,0s) +Then the scenario will 'inconclusive_1' +-> pending: ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") +TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. + ScenarioOutlineSteps.ThenTheScenarioWill("inconclusive_1") at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.ScenarioOutlinesFeature.ThisIsAScenarioOutlineWhereOneScenarioIsInconclusive(String result, String[] exampleTags) in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\ScenarioOutlines.feature:line 21Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Then the scenario will 'pass_1' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Given the calculator has clean memory --> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the step with danish characters like æøå and ÆØÅ shall pass --> done: MinimalSteps.ThenPassingDanishStep() (0,0s) Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) When I have special characters for regexes in the value, for example a '**' @@ -556,11 +548,7 @@ When I have special characters for regexes in the value, for example a '^.*(?< -> done: ScenarioOutlineSteps.WhenIHaveSpecialCharactersForRegexesInTheValueForExampleARegex("^.*(?<foo>BAR)\s[...") (0,0s) Then the scenario will 'PASS' -> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) -Given the calculator has clean memory --> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) -Then the scenario will 'pass_1' --> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) -Given the calculator has clean memory +Given the calculator has clean memory -> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) Given I have entered 50 into the calculator -> done: AdditionSteps.GivenIHaveEnteredIntoTheCalculator(50) (0,0s) @@ -570,14 +558,28 @@ When I press add -> done: AdditionSteps.WhenIPressAdd() (0,0s) Then the result should be 120 on the screen -> done: AdditionSteps.ThenTheResultShouldBeOnTheScreen(120) (0,0s) -Then inconclusive step +Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'pass_1' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) +Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) +Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'PASS' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("PASS") (0,0s) +Given the calculator has clean memory +-> done: AdditionSteps.GivenTheCalculatorHasCleanMemory() (0,0s) +Then the scenario will 'pass_1' +-> done: ScenarioOutlineSteps.ThenTheScenarioWill("pass_1") (0,0s) +Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. - MinimalSteps.ThenInconclusiveStep() ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Failing.feature:linje 7Then passing step --> done: MinimalSteps.ThenPassingStep() (0,0s) -Then failing step + MinimalSteps.ThenInconclusiveStep() at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.FailingFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Failing.feature:line 7Then failing step -> error: The checked value is different from the expected one. The checked value: @@ -589,22 +591,24 @@ The checked value is different from the expected one. The checked value: [True] The expected value: - [False] ved NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) - ved NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) - ved AutomationLayer.MarkTestAs.Failing() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:linje 15 - ved AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:linje 30 - ved TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Failing.feature:linje 10Then passing step + [False] at NFluent.Helpers.EqualityHelper.IsEqualTo(Object instance, Object expected) + at NFluent.Extensibility.Checker`2.ExecuteCheck(Action action, String negatedExceptionMessage) + at AutomationLayer.MarkTestAs.Failing() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MarkTestAs.cs:line 15 + at AutomationLayer.MinimalFeatures.MinimalSteps.ThenFailingStep() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\AutomationLayer\MinimalFeatures\MinimalSteps.cs:line 24 + at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.MinimalFeatures.FailingFeature.FailingFeatureFailingScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Failing.feature:line 10Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) -Then inconclusive step +Then inconclusive step -> pending: MinimalSteps.ThenInconclusiveStep() TechTalk.SpecFlow.SpecFlowException : Test pending: One or more step definitions are not implemented yet. - MinimalSteps.ThenInconclusiveStep() ved TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) - ved Pickles.TestHarness.xunit.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Inconclusive.feature:linje 7Then passing step + MinimalSteps.ThenInconclusiveStep() at TechTalk.SpecFlow.UnitTestProvider.XUnitRuntimeProvider.TestPending(String message) + at Pickles.TestHarness.xunit.MinimalFeatures.InconclusiveFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit.MinimalFeatures.InconclusiveFeature.InconclusiveFeatureInconclusiveScenario() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit\Minimal Features\Inconclusive.feature:line 7Then passing step +-> done: MinimalSteps.ThenPassingStep() (0,0s) +Then passing step -> done: MinimalSteps.ThenPassingStep() (0,0s) \ No newline at end of file diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/WhenParsingxUnit2ResultsFile.cs b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/WhenParsingxUnit2ResultsFile.cs index ac2ca1e3f..c849aaf0b 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/WhenParsingxUnit2ResultsFile.cs +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/WhenParsingxUnit2ResultsFile.cs @@ -123,5 +123,11 @@ public WhenParsingxUnit2ResultsFile() { base.ThenCanReadResultOfScenarioOutlineWithSpecialCharacters(); } + + [Test] + public new void ThenCanReadResultOfScenarioWithSpanishCharacters() + { + base.ThenCanReadResultOfScenarioWithSpanishCharacters(); + } } } diff --git a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/results-example-xunit2.xml b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/results-example-xunit2.xml index 42b6f5454..bb5d6ea0a 100644 --- a/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/results-example-xunit2.xml +++ b/src/Pickles/Pickles.TestFrameworks.UnitTests/XUnit/XUnit2/results-example-xunit2.xml @@ -1,455 +1,479 @@  - + - - + + - - + + - + - - + + - - - - - + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + d__5`2.MoveNext() + at System.Linq.Buffer`1..ctor(IEnumerable`1 source) + at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) + at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() + at Pickles.TestHarness.xunit2.AdditionFeature.ScenarioCleanup() + at Pickles.TestHarness.xunit2.AdditionFeature.FailToAddTwoNumbers() in C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit2\Addition.feature:line 34]]> - - + + - - + + - + + + - - + + + + + + - + - - + + + + + + - + - - + + + + + + - + + + - - + + + + + + - + - - + + + + + + - + - - + + + + + + - + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - + + - - + + - - - - - + - - + + - - - - - + - - + + - - - - - - - + - - + + - + - - + + - + - - + + - - - - - + - - + + - + - - + + - - + - - + + - - - d__5`2.MoveNext() - ved System.Linq.Buffer`1..ctor(IEnumerable`1 source) - ved System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.GetExecuteArguments(BindingMatch match) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) - ved TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep() - ved Pickles.TestHarness.xunit2.AdditionFeature.ScenarioCleanup() - ved Pickles.TestHarness.xunit2.AdditionFeature.FailToAddTwoNumbers() i C:\Dev\Code\GitHub\DirkRombauts\pickles\test-harness\xunit2\Addition.feature:linje 34]]> - - - - + - - + + - - - - - + - - + + - - - - - + - - + + - - - - - - - + - - + + diff --git a/src/Pickles/Pickles.TestFrameworks/CodeFormattingExtensions.cs b/src/Pickles/Pickles.TestFrameworks/CodeFormattingExtensions.cs new file mode 100644 index 000000000..1b1923f93 --- /dev/null +++ b/src/Pickles/Pickles.TestFrameworks/CodeFormattingExtensions.cs @@ -0,0 +1,245 @@ +// -------------------------------------------------------------------------------------------------------------------- +// +// SpecFlow Licence(New BSD License) +// +// Copyright(c) 2009, TechTalk +// +// Disclaimer: +// * The initial codebase of Specflow was written by TechTalk employees. +// No 3rd party code was included. +// * No code of customer projects was used to create this project. +// * TechTalk had the full rights to publish the initial codebase. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of the SpecFlow project nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. + +// THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED.IN NO EVENT SHALL TECHTALK OR CONTRIBUTORS BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// -------------------------------------------------------------------------------------------------------------------- +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; + +namespace TechTalk.SpecFlow.Tracing +{ + public static class CodeFormattingExtensions + { + public static string Indent(this string text, string indent) + { + if (text.EndsWith(Environment.NewLine)) + { + return text.Remove(text.Length - Environment.NewLine.Length).Indent(indent) + Environment.NewLine; + } + + return indent + text.Replace(Environment.NewLine, Environment.NewLine + indent); + } + + public static string ToIdentifier(this string text) + { + string identifier = ToIdentifierPart(text); + if (identifier.Length > 0 && char.IsDigit(identifier[0])) + identifier = "_" + identifier; + + return identifier; + } + + public static string ToIdentifierCamelCase(this string text) + { + string identifier = ToIdentifier(text); + if (identifier.Length > 0) + identifier = identifier.Substring(0, 1).ToLower() + identifier.Substring(1); + + return identifier; + } + + static private readonly Regex firstWordCharRe = new Regex(@"(?
[^\p{Ll}\p{Lu}]+)(?[\p{Ll}\p{Lu}])");
+        static private readonly Regex punctCharRe = new Regex(@"[\n\.-]+");
+
+        public static string ToIdentifierPart(this string text)
+        {
+            text = RemoveQuotationCharacters(text);
+
+            text = firstWordCharRe.Replace(text, match => match.Groups["pre"].Value + match.Groups["fc"].Value.ToUpper());
+
+            text = punctCharRe.Replace(text, "_");
+
+            text = RemoveAccentAndPunctuationChars(text);
+
+            if (text.Length > 0)
+                text = text.Substring(0, 1).ToUpper() + text.Substring(1);
+
+            return text;
+        }
+
+        public static string TrimEllipse(this string text, int maxLength)
+        {
+            if (text == null || text.Length <= maxLength)
+                return text;
+
+            const string ellipse = "...";
+            return text.Substring(0, maxLength - ellipse.Length) + ellipse;
+        }
+
+        #region Accent replacements
+        static private Dictionary accentReplacements = new Dictionary()
+                                                                {
+                                                                    {"\u00C0", "A"},
+                                                                    {"\u00C1", "A"},
+                                                                    {"\u00C2", "A"},
+                                                                    {"\u00C3", "A"},
+                                                                    {"\u00C4", "A"},
+                                                                    {"\u00C5", "A"},
+                                                                    {"\u00C6", "AE"},
+                                                                    {"\u00C7", "C"},
+                                                                    {"\u00C8", "E"},
+                                                                    {"\u00C9", "E"},
+                                                                    {"\u00CA", "E"},
+                                                                    {"\u00CB", "E"},
+                                                                    {"\u00CC", "I"},
+                                                                    {"\u00CD", "I"},
+                                                                    {"\u00CE", "I"},
+                                                                    {"\u00CF", "I"},
+                                                                    {"\u00D0", "D"},
+                                                                    {"\u00D1", "N"},
+                                                                    {"\u00D2", "O"},
+                                                                    {"\u00D3", "O"},
+                                                                    {"\u00D4", "O"},
+                                                                    {"\u00D5", "O"},
+                                                                    {"\u00D6", "O"},
+                                                                    {"\u00D8", "O"},
+                                                                    {"\u00D9", "U"},
+                                                                    {"\u00DA", "U"},
+                                                                    {"\u00DB", "U"},
+                                                                    {"\u00DC", "U"},
+                                                                    {"\u00DD", "Y"},
+                                                                    {"\u00DF", "B"},
+                                                                    {"\u00E0", "a"},
+                                                                    {"\u00E1", "a"},
+                                                                    {"\u00E2", "a"},
+                                                                    {"\u00E3", "a"},
+                                                                    {"\u00E4", "a"},
+                                                                    {"\u00E5", "a"},
+                                                                    {"\u00E6", "ae"},
+                                                                    {"\u00E7", "c"},
+                                                                    {"\u00E8", "e"},
+                                                                    {"\u00E9", "e"},
+                                                                    {"\u00EA", "e"},
+                                                                    {"\u00EB", "e"},
+                                                                    {"\u00EC", "i"},
+                                                                    {"\u00ED", "i"},
+                                                                    {"\u00EE", "i"},
+                                                                    {"\u00EF", "i"},
+                                                                    //{"\u00F0", "d"},
+                                                                    {"\u00F1", "n"},
+                                                                    {"\u00F2", "o"},
+                                                                    {"\u00F3", "o"},
+                                                                    {"\u00F4", "o"},
+                                                                    {"\u00F5", "o"},
+                                                                    {"\u00F6", "o"},
+                                                                    {"\u00F8", "o"},
+                                                                    {"\u00F9", "u"},
+                                                                    {"\u00FA", "u"},
+                                                                    {"\u00FB", "u"},
+                                                                    {"\u00FC", "u"},
+                                                                    {"\u00FD", "y"},
+                                                                    {"\u00FF", "y"},
+
+
+                                                                    {"\u0104", "A"},
+                                                                    {"\u0141", "L"},
+                                                                    {"\u013D", "L"},
+                                                                    {"\u015A", "S"},
+                                                                    {"\u0160", "S"},
+                                                                    {"\u015E", "S"},
+                                                                    {"\u0164", "T"},
+                                                                    {"\u0179", "Z"},
+                                                                    {"\u017D", "Z"},
+                                                                    {"\u017B", "Z"},
+                                                                    {"\u0105", "a"},
+                                                                    {"\u0142", "l"},
+                                                                    {"\u013E", "l"},
+                                                                    {"\u015B", "s"},
+                                                                    {"\u0161", "s"},
+                                                                    {"\u015F", "s"},
+                                                                    {"\u0165", "t"},
+                                                                    {"\u017A", "z"},
+                                                                    {"\u017E", "z"},
+                                                                    {"\u017C", "z"},
+                                                                    {"\u0154", "R"},
+                                                                    {"\u0102", "A"},
+                                                                    {"\u0139", "L"},
+                                                                    {"\u0106", "C"},
+                                                                    {"\u010C", "C"},
+                                                                    {"\u0118", "E"},
+                                                                    {"\u011A", "E"},
+                                                                    {"\u010E", "D"},
+                                                                    {"\u0110", "D"},
+                                                                    {"\u0143", "N"},
+                                                                    {"\u0147", "N"},
+                                                                    {"\u0150", "O"},
+                                                                    {"\u0158", "R"},
+                                                                    {"\u016E", "U"},
+                                                                    {"\u0170", "U"},
+                                                                    {"\u0162", "T"},
+                                                                    {"\u0155", "r"},
+                                                                    {"\u0103", "a"},
+                                                                    {"\u013A", "l"},
+                                                                    {"\u0107", "c"},
+                                                                    {"\u010D", "c"},
+                                                                    {"\u0119", "e"},
+                                                                    {"\u011B", "e"},
+                                                                    {"\u010F", "d"},
+                                                                    {"\u0111", "d"},
+                                                                    {"\u0144", "n"},
+                                                                    {"\u0148", "n"},
+                                                                    {"\u0151", "o"},
+                                                                    {"\u0159", "r"},
+                                                                    {"\u016F", "u"},
+                                                                    {"\u0171", "u"},
+                                                                    {"\u0163", "t"},
+                                                                };
+        #endregion
+
+        static private readonly Regex nonIdentifierRe = new Regex(@"[^\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}]");
+        static private readonly Regex nonLatinRe = new Regex("[^a-zA-Z]");
+
+        public static string RemoveAccentAndPunctuationChars(string text)
+        {
+            var nonIdRemoved = nonIdentifierRe.Replace(text, String.Empty);
+
+            return nonLatinRe.Replace(nonIdRemoved, match =>
+            {
+                string result;
+                // if there is a Latin substitute, we use that
+                if (accentReplacements.TryGetValue(match.Value, out result))
+                    return result;
+                return match.Value;
+            });
+        }
+
+        static private readonly Regex singleAndDoubleQuotes = new Regex(@"['""]");
+
+        public static string RemoveQuotationCharacters(string text)
+        {
+            return singleAndDoubleQuotes.Replace(text, String.Empty);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ExampleSignatureBuilder.cs b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ExampleSignatureBuilder.cs
index b5adf9ed0..2f6c4aba7 100644
--- a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ExampleSignatureBuilder.cs
+++ b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ExampleSignatureBuilder.cs
@@ -31,17 +31,17 @@ public Regex Build(ScenarioOutline scenarioOutline, string[] row)
         {
             var stringBuilder = new StringBuilder();
 
-            var name = SpecFlowNameMapping.Build(scenarioOutline.Name.ToLowerInvariant());
+            var name = SpecFlowNameMapping.Build(scenarioOutline.Name);
             stringBuilder.Append(name).Append("\\(");
 
             foreach (var value in row)
             {
-                stringBuilder.AppendFormat("\"{0}\",", Regex.Escape(value.ToLowerInvariant()));
+                stringBuilder.AppendFormat("\"{0}\",", Regex.Escape(value));
             }
 
             stringBuilder.Remove(stringBuilder.Length - 1, 1);
 
-            return new Regex(stringBuilder.ToString());
+            return new Regex(stringBuilder.ToString(), RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
         }
     }
 }
diff --git a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ScenarioOutlineExampleMatcher.cs b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ScenarioOutlineExampleMatcher.cs
index 59d40f2ed..baf3a7bc1 100644
--- a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ScenarioOutlineExampleMatcher.cs
+++ b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit2/NUnit2ScenarioOutlineExampleMatcher.cs
@@ -39,7 +39,7 @@ public bool IsMatch(ScenarioOutline scenarioOutline, string[] exampleValues, obj
         internal static bool IsMatchingTestCase(XElement x, Regex exampleSignature)
         {
             var name = x.Attribute("name");
-            return name != null && exampleSignature.IsMatch(name.Value.ToLowerInvariant().Replace(@"\\", @"\"));
+            return name != null && exampleSignature.IsMatch(name.Value.Replace(@"\\", @"\"));
         }
     }
 }
\ No newline at end of file
diff --git a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ExampleSignatureBuilder.cs b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ExampleSignatureBuilder.cs
index 34e91dab8..58a9ce7f3 100644
--- a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ExampleSignatureBuilder.cs
+++ b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ExampleSignatureBuilder.cs
@@ -32,17 +32,17 @@ public Regex Build(ScenarioOutline scenarioOutline, string[] row)
         {
             var stringBuilder = new StringBuilder();
 
-            var name = SpecFlowNameMapping.Build(scenarioOutline.Name.ToLowerInvariant());
+            var name = SpecFlowNameMapping.Build(scenarioOutline.Name);
             stringBuilder.Append(name).Append("\\(");
 
             foreach (var value in row)
             {
-                stringBuilder.AppendFormat("\"{0}\",", Regex.Escape(value.ToLowerInvariant()));
+                stringBuilder.AppendFormat("\"{0}\",", Regex.Escape(value));
             }
 
             stringBuilder.Remove(stringBuilder.Length - 1, 1);
 
-            return new Regex(stringBuilder.ToString());
+            return new Regex(stringBuilder.ToString(), RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
         }
     }
 }
diff --git a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ScenarioOutlineExampleMatcher.cs b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ScenarioOutlineExampleMatcher.cs
index feb8bd994..74dd6b9c4 100644
--- a/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ScenarioOutlineExampleMatcher.cs
+++ b/src/Pickles/Pickles.TestFrameworks/NUnit/NUnit3/NUnit3ScenarioOutlineExampleMatcher.cs
@@ -39,7 +39,7 @@ public bool IsMatch(ScenarioOutline scenarioOutline, string[] exampleValues, obj
         internal static bool IsMatchingTestCase(XElement x, Regex exampleSignature)
         {
             var name = x.Attribute("name");
-            return name != null && exampleSignature.IsMatch(name.Value.ToLowerInvariant().Replace(@"\\", @"\"));
+            return name != null && exampleSignature.IsMatch(name.Value.Replace(@"\\", @"\"));
         }
     }
 }
\ No newline at end of file
diff --git a/src/Pickles/Pickles.TestFrameworks/Pickles.TestFrameworks.csproj b/src/Pickles/Pickles.TestFrameworks/Pickles.TestFrameworks.csproj
index f0fadf79f..bcb5d2a39 100644
--- a/src/Pickles/Pickles.TestFrameworks/Pickles.TestFrameworks.csproj
+++ b/src/Pickles/Pickles.TestFrameworks/Pickles.TestFrameworks.csproj
@@ -43,6 +43,7 @@
     
   
   
+    
     
     
     
diff --git a/src/Pickles/Pickles.TestFrameworks/SpecFlowNameMapping.cs b/src/Pickles/Pickles.TestFrameworks/SpecFlowNameMapping.cs
index b82b3b37a..e12b83b64 100644
--- a/src/Pickles/Pickles.TestFrameworks/SpecFlowNameMapping.cs
+++ b/src/Pickles/Pickles.TestFrameworks/SpecFlowNameMapping.cs
@@ -1,32 +1,12 @@
-using System.Text.RegularExpressions;
+using TechTalk.SpecFlow.Tracing;
 
 namespace PicklesDoc.Pickles.TestFrameworks
 {
 	internal static class SpecFlowNameMapping
 	{
-		private static readonly Regex PunctuationCharactersRegex = new Regex(@"[\n\.-]+", RegexOptions.Compiled);
-		private static readonly Regex NonIdentifierCharacterRegex = new Regex(@"[^\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{Nl}\p{Nd}\p{Pc}]", RegexOptions.Compiled);
-
 	    public static string Build(string name)
 	    {
-	        name = PunctuationCharactersRegex.Replace(name, "_");
-	        name = NonIdentifierCharacterRegex.Replace(name, string.Empty);
-	        name = name
-	            .Replace('ä', 'a')
-	            .Replace('ö', 'o')
-	            .Replace('ü', 'u')
-	            .Replace('Ä', 'A')
-	            .Replace('Ö', 'O')
-	            .Replace('Ü', 'U')
-	            .Replace('ß', 'b')
-	            .Replace("æ", "ae")
-	            .Replace('ø', 'o')
-	            .Replace('Ã¥', 'a')
-	            .Replace("Æ", "AE")
-	            .Replace('Ø', 'O')
-	            .Replace('Ã…', 'A');
-
-	        return name;
-	    }
+	        return name.ToIdentifier();
+        }
 	}
 }
diff --git a/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1ScenarioOutlineExampleMatcher.cs b/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1ScenarioOutlineExampleMatcher.cs
index 3e40f55df..59265edde 100644
--- a/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1ScenarioOutlineExampleMatcher.cs
+++ b/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit1/XUnit1ScenarioOutlineExampleMatcher.cs
@@ -38,7 +38,7 @@ public bool IsMatch(ScenarioOutline scenarioOutline, string[] exampleValues, obj
 
         internal static bool IsMatchingTestCase(XElement x, Regex exampleSignature)
         {
-            return exampleSignature.IsMatch(x.Attribute("name").Value.ToLowerInvariant());
+            return exampleSignature.IsMatch(x.Attribute("name").Value);
         }
     }
 }
\ No newline at end of file
diff --git a/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2ScenarioOutlineExampleMatcher.cs b/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2ScenarioOutlineExampleMatcher.cs
index dcaadcda2..aaa3c3efa 100644
--- a/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2ScenarioOutlineExampleMatcher.cs
+++ b/src/Pickles/Pickles.TestFrameworks/XUnit/XUnit2/XUnit2ScenarioOutlineExampleMatcher.cs
@@ -38,8 +38,8 @@ private bool ScenarioOutlineExampleIsMatch(assembliesAssemblyCollectionTest exam
         {
             var testNameWithExample = exampleElement.name;
             var testNameOnly = testNameWithExample.Split('(')[0];
-            testNameWithExample = testNameWithExample.Replace(testNameOnly, Regex.Replace(testNameOnly, @"\s+", string.Empty)).ToLowerInvariant();
-            return signature.IsMatch(exampleElement.name.ToLowerInvariant()) || signature.IsMatch(testNameWithExample);
+            testNameWithExample = testNameWithExample.Replace(testNameOnly, Regex.Replace(testNameOnly, @"\s+", string.Empty));
+            return signature.IsMatch(exampleElement.name) || signature.IsMatch(testNameWithExample);
         }
     }
 }
\ No newline at end of file
diff --git a/src/Pickles/Pickles.TestFrameworks/XUnit/xUnitExampleSignatureBuilder.cs b/src/Pickles/Pickles.TestFrameworks/XUnit/xUnitExampleSignatureBuilder.cs
index d7b989724..14c891a78 100644
--- a/src/Pickles/Pickles.TestFrameworks/XUnit/xUnitExampleSignatureBuilder.cs
+++ b/src/Pickles/Pickles.TestFrameworks/XUnit/xUnitExampleSignatureBuilder.cs
@@ -34,15 +34,15 @@ public Regex Build(ScenarioOutline scenarioOutline, string[] row)
         {
             var stringBuilder = new StringBuilder();
 
-            var name = SpecFlowNameMapping.Build(scenarioOutline.Name.ToLowerInvariant());
+            var name = SpecFlowNameMapping.Build(scenarioOutline.Name);
             stringBuilder.Append(name).Append("\\(");
 
             foreach (var value in row.Select(v => v.Length > MaxExampleValueLength ? new { Value = v.Substring(0, MaxExampleValueLength), Ellipsis = "..." } : new { Value = v, Ellipsis = "" }))
-                stringBuilder.AppendFormat("(.*): \"{0}\"{1}, ", Regex.Escape(value.Value.ToLowerInvariant()), value.Ellipsis);
+                stringBuilder.AppendFormat("(.*): \"{0}\"{1}, ", Regex.Escape(value.Value), value.Ellipsis);
 
             stringBuilder.Remove(stringBuilder.Length - 2, 2);
 
-            return new Regex(stringBuilder.ToString());
+            return new Regex(stringBuilder.ToString(), RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
         }
     }
 }
diff --git a/test-harness/AutomationLayer/MinimalFeatures/MinimalSteps.cs b/test-harness/AutomationLayer/MinimalFeatures/MinimalSteps.cs
index 94c120751..a06608c03 100644
--- a/test-harness/AutomationLayer/MinimalFeatures/MinimalSteps.cs
+++ b/test-harness/AutomationLayer/MinimalFeatures/MinimalSteps.cs
@@ -12,12 +12,6 @@ public void ThenPassingStep()
             MarkTestAs.Passing();
         }
 
-        [Then(@"the step with danish characters like æøå and ÆØÅ shall pass")]
-        public void ThenPassingDanishStep()
-        {
-            MarkTestAs.Passing();
-        }
-
         [Then(@"inconclusive step")]
         public void ThenInconclusiveStep()
         {
diff --git a/test-harness/Cucumber/features/ScenariosWithSpecialCharacters.feature b/test-harness/Cucumber/features/ScenariosWithSpecialCharacters.feature
index afe5dd769..07807bd7e 100644
--- a/test-harness/Cucumber/features/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/Cucumber/features/ScenariosWithSpecialCharacters.feature
@@ -14,14 +14,14 @@ Scenario: This is a scenario with parentheses, hyphen and comma (10-20, 30-40)
 Scenario Outline: This is a scenario outline with parentheses, hyphen and comma (10-20, 30-40)
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
 
 Scenario Outline: This scenario contains examples with Regex-special characters
   When I have special characters for regexes in the value, for example a ''
   Then the scenario will 'pass_1'
-  
+
   Examples:
     | regex                          |
     | **                             |
@@ -31,20 +31,23 @@ Scenario Outline: This scenario contains examples with Regex-special characters
     | {}                             |
     | ()                             |
     | ^.*(?BAR)\s[^0-9]{3,4}A+$ |
-	
+
 Scenario Outline: This is a scenario outline with german umlauts äöüß ÄÖÜ
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
 
 Scenario Outline: This is a scenario outline with ampersand &
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
-	
+
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the scenario with danish characters like æøå and ÆØÅ shall pass
\ No newline at end of file
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/Cucumber/features/step_definitions/MinimalSteps.rb b/test-harness/Cucumber/features/step_definitions/MinimalSteps.rb
index a6ec67333..29693dfa4 100644
--- a/test-harness/Cucumber/features/step_definitions/MinimalSteps.rb
+++ b/test-harness/Cucumber/features/step_definitions/MinimalSteps.rb
@@ -2,10 +2,6 @@
   # Nothing to be done here
 end
 
-Then(/^the scenario with danish characters like æøå and ÆØÅ shall pass$/) do
-  # Nothing to be done here
-end
-
 Then(/^inconclusive step$/) do
   pending # We want pending here
 end
diff --git a/test-harness/CucumberJS/features/ScenariosWithSpecialCharacters.feature b/test-harness/CucumberJS/features/ScenariosWithSpecialCharacters.feature
index c5e944771..07807bd7e 100644
--- a/test-harness/CucumberJS/features/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/CucumberJS/features/ScenariosWithSpecialCharacters.feature
@@ -14,14 +14,14 @@ Scenario: This is a scenario with parentheses, hyphen and comma (10-20, 30-40)
 Scenario Outline: This is a scenario outline with parentheses, hyphen and comma (10-20, 30-40)
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
 
 Scenario Outline: This scenario contains examples with Regex-special characters
   When I have special characters for regexes in the value, for example a ''
   Then the scenario will 'pass_1'
-  
+
   Examples:
     | regex                          |
     | **                             |
@@ -31,20 +31,23 @@ Scenario Outline: This scenario contains examples with Regex-special characters
     | {}                             |
     | ()                             |
     | ^.*(?BAR)\s[^0-9]{3,4}A+$ |
-	
+
 Scenario Outline: This is a scenario outline with german umlauts äöüß ÄÖÜ
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
 
 Scenario Outline: This is a scenario outline with ampersand &
   Then the scenario will ''
 
-  Examples: 
+  Examples:
     | result |
     | pass_1 |
-	
+
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
\ No newline at end of file
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/CucumberJS/features/stepdefinitions/MinimalSteps.js b/test-harness/CucumberJS/features/stepdefinitions/MinimalSteps.js
index 72e175b30..2205b3bd9 100644
--- a/test-harness/CucumberJS/features/stepdefinitions/MinimalSteps.js
+++ b/test-harness/CucumberJS/features/stepdefinitions/MinimalSteps.js
@@ -5,12 +5,6 @@ var {defineSupportCode} = require('cucumber');
 
 defineSupportCode(function({Then}) {
 
-    Then('the step with danish characters like æøå and ÆØÅ shall pass',
-        function(callback) {
-            // nothing to be done here
-            callback();
-        });
-
     Then(/^passing step$/,
         function(callback) {
             // nothing to be done here
@@ -29,4 +23,3 @@ defineSupportCode(function({Then}) {
             callback();
         });
 });
-
diff --git a/test-harness/MsTest/ScenariosWithSpecialCharacters.feature b/test-harness/MsTest/ScenariosWithSpecialCharacters.feature
index 76aab1f6d..c4bbe7971 100644
--- a/test-harness/MsTest/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/MsTest/ScenariosWithSpecialCharacters.feature
@@ -47,4 +47,7 @@ Scenario Outline: This is a scenario outline with ampersand &
     | pass_1 |
 
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
\ No newline at end of file
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/MsTest/ScenariosWithSpecialCharacters.feature.cs b/test-harness/MsTest/ScenariosWithSpecialCharacters.feature.cs
index c46929864..827ea7047 100644
--- a/test-harness/MsTest/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/MsTest/ScenariosWithSpecialCharacters.feature.cs
@@ -263,7 +263,23 @@ public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
 #line 4
 this.FeatureBackground();
 #line 50
-  testRunner.Then("the step with danish characters like æøå and ÆØÅ shall pass", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute()]
+        [Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute("This is a scenario with spanish characters ñáéíóú")]
+        [Microsoft.VisualStudio.TestTools.UnitTesting.TestPropertyAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 52
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 53
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
 #line hidden
             this.ScenarioCleanup();
         }
diff --git a/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature b/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature
index 1bd8c6e00..e8a7ff0dc 100644
--- a/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature
@@ -48,4 +48,7 @@ Scenario Outline: This is a scenario outline with german umlauts äöüß ÄÖÜ
 #    | pass_1 |
 
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
\ No newline at end of file
diff --git a/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature.cs b/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature.cs
index 569c84d65..2310ef47d 100644
--- a/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/SpecRun/ScenariosWithSpecialCharacters.feature.cs
@@ -195,7 +195,21 @@ public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
 #line 4
 this.FeatureBackground();
 #line 51
-  testRunner.Then("the step with danish characters like æøå and ÆØÅ shall pass", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [TechTalk.SpecRun.ScenarioAttribute("This is a scenario with spanish characters ñáéíóú", SourceLine=52)]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 53
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 54
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
 #line hidden
             this.ScenarioCleanup();
         }
diff --git a/test-harness/nunit/ScenariosWithSpecialCharacters.feature b/test-harness/nunit/ScenariosWithSpecialCharacters.feature
index d71f0606a..c4bbe7971 100644
--- a/test-harness/nunit/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/nunit/ScenariosWithSpecialCharacters.feature
@@ -47,4 +47,7 @@ Scenario Outline: This is a scenario outline with ampersand &
     | pass_1 |
 
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/nunit/ScenariosWithSpecialCharacters.feature.cs b/test-harness/nunit/ScenariosWithSpecialCharacters.feature.cs
index df99a646a..c8ed82c11 100644
--- a/test-harness/nunit/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/nunit/ScenariosWithSpecialCharacters.feature.cs
@@ -175,7 +175,22 @@ public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
 #line 4
 this.FeatureBackground();
 #line 50
-  testRunner.Then("the step with danish characters like æøå and ÆØÅ shall pass", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [NUnit.Framework.TestAttribute()]
+        [NUnit.Framework.DescriptionAttribute("This is a scenario with spanish characters ñáéíóú")]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 52
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 53
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
 #line hidden
             this.ScenarioCleanup();
         }
diff --git a/test-harness/nunit3/ScenariosWithSpecialCharacters.feature b/test-harness/nunit3/ScenariosWithSpecialCharacters.feature
index d71f0606a..c4bbe7971 100644
--- a/test-harness/nunit3/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/nunit3/ScenariosWithSpecialCharacters.feature
@@ -47,4 +47,7 @@ Scenario Outline: This is a scenario outline with ampersand &
     | pass_1 |
 
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/nunit3/ScenariosWithSpecialCharacters.feature.cs b/test-harness/nunit3/ScenariosWithSpecialCharacters.feature.cs
index 46bae6064..8a31e3212 100644
--- a/test-harness/nunit3/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/nunit3/ScenariosWithSpecialCharacters.feature.cs
@@ -175,7 +175,22 @@ public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
 #line 4
 this.FeatureBackground();
 #line 50
-  testRunner.Then("the step with danish characters like æøå and ÆØÅ shall pass", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [NUnit.Framework.TestAttribute()]
+        [NUnit.Framework.DescriptionAttribute("This is a scenario with spanish characters ñáéíóú")]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 52
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 53
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
 #line hidden
             this.ScenarioCleanup();
         }
diff --git a/test-harness/xunit/ScenariosWithSpecialCharacters.feature b/test-harness/xunit/ScenariosWithSpecialCharacters.feature
index 81ce56e9f..9597b2f2b 100644
--- a/test-harness/xunit/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/xunit/ScenariosWithSpecialCharacters.feature
@@ -48,4 +48,7 @@ Scenario Outline: This is a scenario outline with ampersand &
     | pass_1 |
 
 Scenario: This is a scenario with danish characters æøå ÆØÅ
-  Then the step with danish characters like æøå and ÆØÅ shall pass
\ No newline at end of file
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/xunit/ScenariosWithSpecialCharacters.feature.cs b/test-harness/xunit/ScenariosWithSpecialCharacters.feature.cs
index 8a87b9424..d26c29c88 100644
--- a/test-harness/xunit/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/xunit/ScenariosWithSpecialCharacters.feature.cs
@@ -189,7 +189,23 @@ public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
 #line 4
 this.FeatureBackground();
 #line 51
-  testRunner.Then("the step with danish characters like æøå and ÆØÅ shall pass", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [Xunit.FactAttribute()]
+        [Xunit.TraitAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        [Xunit.TraitAttribute("Description", "This is a scenario with spanish characters ñáéíóú")]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 53
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 54
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
 #line hidden
             this.ScenarioCleanup();
         }
diff --git a/test-harness/xunit2/ScenariosWithSpecialCharacters.feature b/test-harness/xunit2/ScenariosWithSpecialCharacters.feature
index 15e291a18..9597b2f2b 100644
--- a/test-harness/xunit2/ScenariosWithSpecialCharacters.feature
+++ b/test-harness/xunit2/ScenariosWithSpecialCharacters.feature
@@ -31,3 +31,24 @@ Scenario Outline: This scenario contains examples with Regex-special characters
     | {}                             |
     | ()                             |
     | ^.*(?BAR)\s[^0-9]{3,4}A+$ | 
+
+
+Scenario Outline: This is a scenario outline with german umlauts äöüß ÄÖÜ
+  Then the scenario will ''
+
+  Examples: 
+    | result |
+    | pass_1 |
+
+Scenario Outline: This is a scenario outline with ampersand &
+  Then the scenario will ''
+
+  Examples: 
+    | result |
+    | pass_1 |
+
+Scenario: This is a scenario with danish characters æøå ÆØÅ
+  Then passing step
+
+Scenario: This is a scenario with spanish characters ñáéíóú
+  Then passing step
diff --git a/test-harness/xunit2/ScenariosWithSpecialCharacters.feature.cs b/test-harness/xunit2/ScenariosWithSpecialCharacters.feature.cs
index 7b1b05968..d96e26469 100644
--- a/test-harness/xunit2/ScenariosWithSpecialCharacters.feature.cs
+++ b/test-harness/xunit2/ScenariosWithSpecialCharacters.feature.cs
@@ -144,6 +144,72 @@ public virtual void ThisScenarioContainsExamplesWithRegex_SpecialCharacters(stri
             this.ScenarioCleanup();
         }
         
+        [Xunit.TheoryAttribute()]
+        [Xunit.TraitAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        [Xunit.TraitAttribute("Description", "This is a scenario outline with german umlauts äöüß ÄÖÜ")]
+        [Xunit.InlineDataAttribute("pass_1", new string[0])]
+        public virtual void ThisIsAScenarioOutlineWithGermanUmlautsAouBAOU(string result, string[] exampleTags)
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario outline with german umlauts äöüß ÄÖÜ", exampleTags);
+#line 36
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 37
+  testRunner.Then(string.Format("the scenario will \'{0}\'", result), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [Xunit.TheoryAttribute()]
+        [Xunit.TraitAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        [Xunit.TraitAttribute("Description", "This is a scenario outline with ampersand &")]
+        [Xunit.InlineDataAttribute("pass_1", new string[0])]
+        public virtual void ThisIsAScenarioOutlineWithAmpersand(string result, string[] exampleTags)
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario outline with ampersand &", exampleTags);
+#line 43
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 44
+  testRunner.Then(string.Format("the scenario will \'{0}\'", result), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [Xunit.FactAttribute()]
+        [Xunit.TraitAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        [Xunit.TraitAttribute("Description", "This is a scenario with danish characters æøå ÆØÅ")]
+        public virtual void ThisIsAScenarioWithDanishCharactersAEoaAEOA()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with danish characters æøå ÆØÅ", ((string[])(null)));
+#line 50
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 51
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
+        [Xunit.FactAttribute()]
+        [Xunit.TraitAttribute("FeatureTitle", "Scenarios With Special Characters")]
+        [Xunit.TraitAttribute("Description", "This is a scenario with spanish characters ñáéíóú")]
+        public virtual void ThisIsAScenarioWithSpanishCharactersNaeiou()
+        {
+            TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("This is a scenario with spanish characters ñáéíóú", ((string[])(null)));
+#line 53
+this.ScenarioSetup(scenarioInfo);
+#line 4
+this.FeatureBackground();
+#line 54
+  testRunner.Then("passing step", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
+#line hidden
+            this.ScenarioCleanup();
+        }
+        
         [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.9.0.77")]
         [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
         public class FixtureData : System.IDisposable