PlayNicely.SpecFlow.Executor
2.3.0-beta-479
See the version list below for details.
dotnet add package PlayNicely.SpecFlow.Executor --version 2.3.0-beta-479
NuGet\Install-Package PlayNicely.SpecFlow.Executor -Version 2.3.0-beta-479
<PackageReference Include="PlayNicely.SpecFlow.Executor" Version="2.3.0-beta-479" />
paket add PlayNicely.SpecFlow.Executor --version 2.3.0-beta-479
#r "nuget: PlayNicely.SpecFlow.Executor, 2.3.0-beta-479"
// Install PlayNicely.SpecFlow.Executor as a Cake Addin #addin nuget:?package=PlayNicely.SpecFlow.Executor&version=2.3.0-beta-479&prerelease // Install PlayNicely.SpecFlow.Executor as a Cake Tool #tool nuget:?package=PlayNicely.SpecFlow.Executor&version=2.3.0-beta-479&prerelease
Play Nicely - SpecFlow Executor
The Play Nicely SpecFlow projects provide Gherkin language bindings for PlayNicely.Executor. These bindings allow you to require or uninstall commands, specify package sources and mappings, and set test case projects. These scenarios are designed to support building release tests for Play Nicely npm package projects.
Getting Started
To start using these bindings in a SpecFlow project, install this package, or
one of the more specific packages, as a dependency. Then add or update the
specflow.json
so that the project picks up the bindings.
With this done, you can use the bindings to specify your scenarios.
Install the package
From the Package Manager Console:
Install-Package PlayNicely.SpecFlow.Executor -ProjectName "_your-specflow-project_"
âšī¸ Or use one of the more specific packages such as PlayNicely.SpecFlow.DotNet
Add or Update specflow.json
For SpecFlow to pick up the bindings from external assemblies, they have to be
configured in the project's specflow.json
file. If the project doesn't
already have it, add the item to the root of your SpecFlow project.
Add the external assemblies to the file:
{
"stepAssemblies": [
{ "assembly": "PlayNicely.SpecFlow.Executor" }
]
}
You can now use the step definitions and bindings from Play Nicely.
Working Examples
The PlayNicely.NpmNpx and PlayNicely.Sass projects contain real examples of how to set up your projects and configure test scenarios.
Creating Test Scenarios
This package provides step definitions and hooks to simplify scenario set up. Many scenarios require a test environment and, if a test fails, to output any data sent to stdout or stderr.
The test environment hook will run if you tag your features or scenarios with
@test-environment
. The order of these hooks are determined using the Order
property on hook attributes, the values of these are defined in the
SpecFlowConts.BindingOrder
static class. You can use these to develop
downstream hooks that rely on these concepts, e.g. if it needs a
TestEnvironmentBuilder
.
Step Definitions
This package provides the following step definitions for use in test scenarios.
Given
Given command (command) is installed
Ensures that command is on the$PATH
in the test environment.Given command (command) is uninstalled
If the command is found on the$PATH
, its directory will be removed from the$PATH
in the test environment. This simulates the command being unavailable (uninstalled). For a more complete description of how this works see this page.
When
When command (command line) is executed
Executes process based on the command line provided. The command line is parsed based on the Linux shell rules, \ is the escape character and both " and ' are accepted as quotes.
Then
Then the command should [succeed|fail]
Test whether the process exited successfully or not.Then [directory|file|path] (relative/path) should exist
Test to ensure a directory, file, or either exists relative to the test execution working directory.Then [directory|file|path] (relative/path) should not exist
Test to ensure a directory, file or either does not exist relative to the test execution working directory.Then [stderr|stdout] should contain (text)
Test that the standard error, or output, stream of the process containstext
.Then [stderr|stdout] should match (regex)
Test the standard error, or output, stream of the process to ensureregex
matches.
Hooks and Extensions
The EnvironmentBuilderHooks
create a TestEnvironmentBuilder
before each
scenario and stores it in the ScenarioContext
. This builder can be accessed
using the extension method ScenarioContext.RequireEnvironmentBuilder()
and
other methods of the TestEnvironmentBuilderExtensions
class.
The ExecutionResultHooks
checks to see if a scenario failed, and if it did,
outputs any ExecutionResult
stdout and stderr streams. Steps can Collect
the result using the extension method ScenarioContext.CollectResult(result)
of the ExecutionResultExtensions
class (this collection is already done for
Play Nicely defined steps). This class provides extensions for accessing the
execution result, including results that include a context.
The DisposableExtensions
allow scenarios to create disposable resources and
have them disposed after the scenario finishes. Use the
ScenarioContext.MarkForDisposal(disposable)
method for this purpose.
Constants
The SpecFlowConsts
class defines constants for tags and binding order.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
-
net8.0
- FluentAssertions (>= 6.12.0)
- Microsoft.Extensions.DependencyModel (>= 8.0.1)
- PlayNicely.Executor (>= 1.3.0-beta-479)
- SpecFlow (>= 3.9.74)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PlayNicely.SpecFlow.Executor:
Package | Downloads |
---|---|
PlayNicely.SpecFlow.DotNet
SpecFlow bindings that allow you to run tests by executing dotnet commands against a pre-configured test environment and test case project. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.3.2-beta-550 | 74 | 10/4/2024 |
2.3.2-beta-543 | 85 | 9/28/2024 |
2.3.2-beta-535 | 81 | 9/28/2024 |
2.3.2-beta-529 | 73 | 9/23/2024 |
2.3.2-beta-518 | 95 | 9/21/2024 |
2.3.2-beta-511 | 75 | 9/20/2024 |
2.3.2-beta-509 | 70 | 9/20/2024 |
2.3.2-beta-507 | 65 | 9/20/2024 |
2.3.2-beta-505 | 75 | 9/19/2024 |
2.3.2-beta-501 | 90 | 9/18/2024 |
2.3.2-beta-499 | 91 | 9/18/2024 |
2.3.2-beta-496 | 70 | 9/18/2024 |
2.3.2-beta-494 | 80 | 9/18/2024 |
2.3.2-beta-492 | 90 | 9/18/2024 |
2.3.1 | 107 | 9/17/2024 |
2.3.1-beta-487 | 77 | 9/17/2024 |
2.3.0 | 116 | 9/14/2024 |
2.3.0-beta-479 | 84 | 9/14/2024 |
2.3.0-beta-472 | 100 | 9/14/2024 |
2.2.0-beta-465 | 95 | 9/7/2024 |
2.1.1 | 111 | 6/1/2024 |
2.1.1-beta-450 | 91 | 7/14/2024 |
2.1.1-beta-442 | 90 | 7/12/2024 |
2.1.1-beta-432 | 73 | 7/11/2024 |
2.1.1-beta-418 | 83 | 6/1/2024 |
2.1.1-beta-398 | 73 | 6/1/2024 |
2.1.0 | 133 | 5/8/2024 |
2.1.0-beta-393 | 67 | 5/31/2024 |
2.1.0-beta-382 | 116 | 5/21/2024 |
2.1.0-beta-370 | 101 | 5/8/2024 |
2.1.0-beta-355 | 114 | 5/7/2024 |
2.0.0 | 130 | 5/6/2024 |
2.0.0-beta-349 | 113 | 5/7/2024 |
2.0.0-beta-346 | 123 | 5/7/2024 |
2.0.0-beta-340 | 105 | 5/7/2024 |
2.0.0-beta-323 | 97 | 5/6/2024 |
1.3.0 | 121 | 4/26/2024 |
1.3.0-beta-312 | 88 | 4/26/2024 |
1.2.0 | 140 | 4/14/2024 |
1.2.0-beta-299 | 107 | 4/14/2024 |
1.2.0-beta-296 | 123 | 4/14/2024 |
1.1.1 | 160 | 4/11/2024 |
1.1.1-beta-287 | 109 | 4/11/2024 |
1.1.1-beta-282 | 121 | 4/11/2024 |
1.1.1-beta-280 | 118 | 4/10/2024 |
1.1.1-beta-278 | 90 | 4/10/2024 |
1.1.1-beta-276 | 109 | 4/10/2024 |
1.1.1-beta-274 | 102 | 4/9/2024 |
1.1.1-beta-272 | 106 | 4/9/2024 |
1.1.0 | 124 | 3/21/2024 |
1.1.0-beta-266 | 114 | 3/21/2024 |
1.1.0-beta-260 | 101 | 3/21/2024 |
1.0.1 | 166 | 3/10/2024 |
1.0.1-prerelease-20240301-0... | 118 | 3/1/2024 |
1.0.1-beta-227 | 105 | 3/10/2024 |
1.0.1-beta-221 | 109 | 3/9/2024 |
1.0.1-beta-214 | 103 | 3/9/2024 |
1.0.1-beta-208 | 102 | 3/1/2024 |
1.0.1-beta-206 | 103 | 3/1/2024 |
1.0.0 | 179 | 2/29/2024 |
1.0.0-prerelease-20240229-1... | 95 | 2/29/2024 |
1.0.0-prerelease-20240228-0... | 95 | 2/28/2024 |
1.0.0-prerelease-20240226-1... | 95 | 2/26/2024 |
1.0.0-prerelease-20240225-0... | 90 | 2/25/2024 |
1.0.0-prerelease-20240225-0... | 121 | 2/25/2024 |