Setup SpecFlow Projects
The Getting Started guide provides a basic introduction to SpecFlow, including installing SpecFlow and setting up your first project. This page covers the available options in greater depth.
SpecFlow tests are usually placed in one or more separate project in the solution. These are referred to as the "SpecFlow projects".
Step-by-Step Guide to Setting Up SpecFlow Projects Using NuGet
This following outlines the recommended setup options. For alternatives, see the Advanced Project Setup page.
1. Create a project
Since SpecFlow supports various unit testing frameworks that can be used to execute the SpecFlow tests, SpecFlow projects must be either Test Projects (in case of MsTest) or simple Class Libraries. As with unit tests, it makes sense to adopt a consistent naming convention for these projects (usual project name postfixes are Specs or AcceptanceTests).
2. Add a reference for the SpecFlow runtime
SpecFlow projects require the
TechTalk.SpecFlow.dll in order to compile. This DLL is deployed when installing the
SpecFlow NuGet package or one of the specific helper packages, such as
SpecRun.SpecFlow. The helper packages group all necessary dependencies and apply the necessary configuration.
Install the NuGet packages by either right-clicking on your solution and selecting Manage NuGet Packages for Solution or from the Packet Manager console:
PM> Install-Package SpecFlow -ProjectName MyApp.Specs
3. Configure your SpecFlow project
If you used one of the helper NuGet packages to install SpecFlow, you don't need to configure anything. If you used the
SpecFlow package or want to finetune SpecFlow, you need to change the settings in the App.config file. For details, refer to Configuration.
4. Add your first feature file
Your project is now ready to use SpecFlow. You can add your first feature files in Visual Studio be selecting Add | New Item and develop your applications according to the Specification by Example (Behavior Driven Development (BDD) or Acceptance Test Driven Development (ATDD)) paradigms.