GherkinSync 1.6.0
dotnet add package GherkinSync --version 1.6.0
NuGet\Install-Package GherkinSync -Version 1.6.0
<PackageReference Include="GherkinSync" Version="1.6.0" />
<PackageVersion Include="GherkinSync" Version="1.6.0" />
<PackageReference Include="GherkinSync" />
paket add GherkinSync --version 1.6.0
#r "nuget: GherkinSync, 1.6.0"
#:package GherkinSync@1.6.0
#addin nuget:?package=GherkinSync&version=1.6.0
#tool nuget:?package=GherkinSync&version=1.6.0
GherkinSync
Simple attributes for syncing Gherkin specifications with implementations.
The GherkinSync.Analyzer package prevents Documentation drift by creating a custom compilation error when the SyncedFeature attribute detects any mismatch between the Scenario Step lines and the attributed classes method names. Apply the attribute to your production code for an easy compile-time verification of The Feature Pattern.
The GherkinSync.TestAdapter package is a simple Unit Test Runner that binds classes to Gherkin specification files using the SyncedTest attribute. Apply the attribute to your test class to execute the scenarios in the specification file as unit tests.
The attributes will search one directory up from the project root for the specification file.
C# Example
- Install the
Microsoft.NET.Test.Sdkpackage.
Valid Login.feature file:
Feature: Valid Login
Scenario: Valid login
Given I am on the login page
When I enter valid credentials
Then I should be logged in
- You need to place these XML elements in your unit test project's .csproj file:
<PropertyGroup>
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
<RunAnalyzersDuringLiveAnalysis>true</RunAnalyzersDuringLiveAnalysis>
<TestAdapterPath>$(OutputPath)</TestAdapterPath>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="..\**\*.feature" />
</ItemGroup>
By convention, the implementation method names in Pascal Case format will match spaced, plain-text step names in the specification file.
using GherkinSync;
[SyncedFeature("Valid Login.feature")]
[SyncedTest("Valid Login.feature")]
public class MyFeature
{
public void GivenTheUserStartsTheApp()
{
Console.WriteLine("This occurs in the unit test first.");
}
public void WhenTheUserClicksTheButton()
{
Console.WriteLine("This occurs in the unit test second.");
}
public void ThenTheButtonShouldBeDisabled()
{
Console.WriteLine("Finally, this occurs in the unit test third.");
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- GherkinSync.Analyzer (>= 1.6.0)
- GherkinSync.TestAdapter (>= 1.6.0)
-
net10.0
- GherkinSync.Analyzer (>= 1.6.0)
- GherkinSync.TestAdapter (>= 1.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.