Jo-Anne
Jo-Anne

Reputation: 139

How to reuse SpecFlow steps from a different solution

I am new to SpecFlow and I am wanting to reuse steps/tests (.feature files essentially) between solutions. I know there is a way to reuse steps between projects in the same solution by adding a reference to the project but I'm not sure exactly how to do essentially the same thing to a different solution. Thanks for any help on this one.

Upvotes: 0

Views: 767

Answers (3)

diabolist
diabolist

Reputation: 4119

Doing this is a bit of an anti pattern. The reason for having feature files is to talk about WHAT the application does and WHY its important. So feature files should contain things that are unique to your application domain, and there won't be much overlap between projects

When you write features this way even common functionality isn't really worth sharing, because the complexity outweighs the simplicity of doing things again.

For example logging in is ripe for sharing between applications but all you need in a feature is

Given I am registered
When I login
Then I should be logged in

This is so simple that its easier to just write another one for your second application.

Most steps that people have shared other the years are all about HOW things are done e.g. clicking on things, filling in fields etc.. These generally lead to bloated scenarios and again the cost outweighs the benefits.

If you still feel there is alot of shared behaviour between your applications you may have an architectural problem where you need to extract the shared behaviour into its own application, and have your applications delegate responsibility.

Upvotes: 0

E z
E z

Reputation: 114

You cant reuse .feature files but you can reuse step definitions and hooks.

You will have to add reference to the project.

Here is the link how to reference a project in Visual studio: Link

Upvotes: 1

Anand
Anand

Reputation: 1939

I do not think it is possible to use steps from a different solution. You will need to include them in your working solution somewhere to use them. I don't think Visual Studio has the option to let you use inter-solution code unless you have compiled it and reference it within your working solution.

Upvotes: 0

Related Questions