Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
71e1751
Upgraded dependencies to latest releases of Cucumber Gherkin 37.0.1, …
clrudolphi Jan 3, 2026
aebf21d
Update CHANGELOG.md
clrudolphi Jan 3, 2026
9f05a23
undo whitespace changes in Reqnroll.csproj
gasparnagy Jan 6, 2026
fbdf013
add PR number to CHANGELOG
gasparnagy Jan 6, 2026
053d604
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
clrudolphi Jan 14, 2026
5eaad11
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
clrudolphi Jan 20, 2026
c263421
Update Formatters.Tests samples to CCK v27 release (adds a new All-St…
clrudolphi Jan 20, 2026
bb0de35
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
clrudolphi Jan 27, 2026
faea58d
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
clrudolphi Feb 9, 2026
27d4387
Updated to Gherkin 38, Messages 32.0.1, and HtmlFormatter 23
clrudolphi Feb 9, 2026
796fe56
Eliminated (deleted) the CCK assets that will be provided by the CCK …
clrudolphi Feb 23, 2026
dffd569
Add CCK package.
clrudolphi Feb 24, 2026
d52c43f
Modified tests to use the new path to the CCK assets.
clrudolphi Feb 24, 2026
45af513
Fixes to Formatters test infrastucture for using the new CCK package.
clrudolphi Feb 24, 2026
05c05ab
Fix Formatter.Tests csproj for cross-platform compatibility of embedd…
clrudolphi Feb 25, 2026
f3110a3
Fix test for ambiguous step matching
clrudolphi Feb 25, 2026
e54acf7
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
gasparnagy Mar 23, 2026
bce4b52
Merge branch 'main' into update_Cucumber_Dependencies_01_2026
clrudolphi Mar 23, 2026
6000a01
Fix CHANGELOG.md
clrudolphi Mar 23, 2026
022600a
Upgrade Cucumber.HtmlFormatter to v23.1.0 (and Messages to v32.3.1) t…
clrudolphi Apr 14, 2026
d4db5f5
Fix a OS-line-ending mistake in the regression test.
clrudolphi Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

## Improvements:

* Updated Cucumber dependencies to: Gherkin v37.0.1, Cucumber.Messages v31.1.0 and Cucumber.HtmlFormatter v22.3.0. (#984)

## Bug fixes:

* Fix authors of Reqnroll.Autofac package (#979)

*Contributors of this release (in alphabetical order):* @304NotModified
*Contributors of this release (in alphabetical order):* @304NotModified, @clrudolphi

# v3.3.0 - 2025-12-17

Expand Down
2 changes: 1 addition & 1 deletion Reqnroll.Parser/Reqnroll.Parser.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Gherkin" Version="35.0.0" />
<PackageReference Include="Gherkin" Version="37.0.1" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions Reqnroll/Reqnroll.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Gherkin" Version="35.0.0" />
<PackageReference Include="Gherkin" Version="37.0.1" />
<PackageReference Include="Cucumber.CucumberExpressions" Version="17.1.0" />
<PackageReference Include="Cucumber.Messages" Version="30.1.0" />
<PackageReference Include="Cucumber.HtmlFormatter" Version="22.2.0" />
<PackageReference Include="Cucumber.Messages" Version="31.1.0" />
<PackageReference Include="Cucumber.HtmlFormatter" Version="22.3.0" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.6" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.2" />
<!-- System.Runtime.Loader is used for .NET (not .NET Framework) based frameworks only.
Expand Down
2 changes: 2 additions & 0 deletions Tests/Reqnroll.Formatters.Tests/MessagesCompatibilityTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,11 @@ public void NonCCKScenarios(string testName)
[DataRow("global-hooks-beforeall-error")] // Cucumber expects execution to continue after a hook failure
[DataRow("global-hooks-afterall-error")] // Cucumber expects execution to continue after a hook failure
[DataRow("global-hooks-attachments")] // Fails b/c we cannot obtain Reqnroll OutputHandler in global hooks
[DataRow("hooks-skipped")] // Reqnroll terminates execution on first hook failure; Cucumber expects execution of other hooks continue after a hook failure
[DataRow("unknown-parameter-type")] // Reqnroll does not provide skeletons for missing Parameter Types
[DataRow("regular-expression")] // Reqnroll does not support optional binding method arguments
[DataRow("multiple-features-reversed")] // Reqnroll does not have the concept of specifying execution order via run-time parameter
[DataRow("test-run-exception")] // Reqnroll does not support a means of simulating a start-up failure
// These scenarios are from the CCK, but Reqnroll cannot provide a compliant implementation. This is usually the result of differences in behavior or support of Gherkin features.
// When these scenarios are run, expect them to fail.
public void NonCompliantCCKScenarios(string testName)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{"meta":{"protocolVersion":"29.0.1","implementation":{"name":"fake-cucumber","version":"123.45.6"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.5.0"},"runtime":{"name":"Node.js","version":"24.4.1"},"ci":{"name":"GitHub Actions","url":"https://github.com/cucumber-ltd/shouty.rb/actions/runs/154666429","buildNumber":"154666429","git":{"revision":"99684bcacf01d95875834d87903dcb072306c9ad","remote":"https://github.com/cucumber-ltd/shouty.rb.git","branch":"main"}}}}
{"meta":{"protocolVersion":"31.0.0","implementation":{"name":"fake-cucumber","version":"123.45.6"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.5.0"},"runtime":{"name":"Node.js","version":"24.4.1"},"ci":{"name":"GitHub Actions","url":"https://github.com/cucumber-ltd/shouty.rb/actions/runs/154666429","buildNumber":"154666429","git":{"revision":"99684bcacf01d95875834d87903dcb072306c9ad","remote":"https://github.com/cucumber-ltd/shouty.rb.git","branch":"main"}}}}
{"source":{"data":"Feature: Ambiguous steps\n Multiple step definitions that match a pickle step result in an AMBIGUOUS status, since Cucumnber cannot determine\n which one to execute.\n\n Scenario: Multiple step definitions for a step\n Given a step with multiple definitions\n","uri":"samples/ambiguous/ambiguous.feature","mediaType":"text/x.cucumber.gherkin+plain"}}
{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Ambiguous steps","description":" Multiple step definitions that match a pickle step result in an AMBIGUOUS status, since Cucumnber cannot determine\n which one to execute.","children":[{"scenario":{"id":"1","tags":[],"location":{"line":5,"column":3},"keyword":"Scenario","name":"Multiple step definitions for a step","description":"","steps":[{"id":"0","location":{"line":6,"column":5},"keyword":"Given ","keywordType":"Context","text":"a step with multiple definitions"}],"examples":[]}}]},"comments":[],"uri":"samples/ambiguous/ambiguous.feature"}}
{"pickle":{"id":"3","uri":"samples/ambiguous/ambiguous.feature","astNodeIds":["1"],"tags":[],"name":"Multiple step definitions for a step","language":"en","steps":[{"id":"2","text":"a step with multiple definitions","type":"Context","astNodeIds":["0"]}]}}
{"pickle":{"id":"3","uri":"samples/ambiguous/ambiguous.feature","location":{"line":5,"column":3},"astNodeIds":["1"],"tags":[],"name":"Multiple step definitions for a step","language":"en","steps":[{"id":"2","text":"a step with multiple definitions","type":"Context","astNodeIds":["0"]}]}}
{"stepDefinition":{"id":"4","pattern":{"type":"REGULAR_EXPRESSION","source":"^a (.*?) with (.*?)$"},"sourceReference":{"uri":"samples/ambiguous/ambiguous.ts","location":{"line":3}}}}
{"stepDefinition":{"id":"5","pattern":{"type":"REGULAR_EXPRESSION","source":"^a step with (.*)$"},"sourceReference":{"uri":"samples/ambiguous/ambiguous.ts","location":{"line":7}}}}
{"testRunStarted":{"id":"6","timestamp":{"seconds":0,"nanos":0}}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,46 @@ internal Attachments(IReqnrollOutputHelper reqnrollOutputHelper)
this.reqnrollOutputHelper = reqnrollOutputHelper;
}

[When(@"the string {string} is logged")]
public void WhenLogText(string text)
[When(@"the string {string} is attached as {string}")]
public void WhenAttachTextAs(string text, string mediaType)
{
reqnrollOutputHelper.WriteLine(text);
throw new PendingException("attaching strings with mediaTypes unsupported");
}

[When(@"text with ANSI escapes is logged")]
public void WhenTextWithANSIEscapedIsLogged()
[When(@"the following string is attached as {string}:")]
public void WhenAttachTextAsMultilineString(string mediaType, string text)
{
reqnrollOutputHelper.WriteLine("This displays a \x1b[31mr\x1b[0m\x1b[91ma\x1b[0m\x1b[33mi\x1b[0m\x1b[32mn\x1b[0m\x1b[34mb\x1b[0m\x1b[95mo\x1b[0m\x1b[35mw\x1b[0m");
throw new PendingException("attaching strings with mediaTypes unsupported");
}

[When(@"a JPEG image is attached")]
public void WhenAJPEGImageIsAttached()
[When(@"an array with {int} bytes is attached as {string}")]
public void WhenAttachByteArrayAs(int byteCount, string mediaType)
{
var ext = "jpeg" ;
var path = FileSystemPath.GetFilePathForAttachments();
var attachment = Path.Combine(path, "attachments", $"cucumber.{ext}");
throw new PendingException("attaching byte arrays with mediaTypes unsupported");
}

reqnrollOutputHelper.AddAttachment(attachment);
[When(@"a PDF document is attached and renamed")]
public void WhenAttachPdfDocumentRenamed()
{
throw new PendingException("attaching files and renaming them unsupported");
}

[When(@"a PNG image is attached")]
public void WhenAPNGImageIsAttached()
[When(@"a link to {string} is attached")]
public void WhenAttachLinkTo(string url)
{
var ext = "png";
var path = FileSystemPath.GetFilePathForAttachments();
var attachment = Path.Combine(path, "attachments", $"cucumber.{ext}");
throw new PendingException("attaching links unsupported");
}

reqnrollOutputHelper.AddAttachment(attachment);
[When(@"the string {string} is logged")]
public void WhenLogText(string text)
{
reqnrollOutputHelper.WriteLine(text);
}

[When(@"text with ANSI escapes is logged")]
public void WhenTextWithANSIEscapedIsLogged()
{
reqnrollOutputHelper.WriteLine("This displays a \x1b[31mr\x1b[0m\x1b[91ma\x1b[0m\x1b[33mi\x1b[0m\x1b[32mn\x1b[0m\x1b[34mb\x1b[0m\x1b[95mo\x1b[0m\x1b[35mw\x1b[0m");
}

}
Expand Down
Loading
Loading