Skip to main content

understanding specflow support for different test framework

Specflow is a BDD testing framework. It can be confusing to work with it. There are some key component that you need to be aware off.

1. SpecRun.Runner - that is used in many of their tutorials and it needs a LICENSE if you need to use it in production. You probably going to be calling "specrun.exe". Setup is really easy as it is well documented in their tutorials.

2. Specflow.MsTest - this is the tool that you use specflow together with mstest. This is the link where you can grab your nuget package. It is just a simple "Install-Package SpecFlow.MsTest".

Last step in this process is you need to edit App.config to configure code generation for Microsoft.

When you SAVE your file, you will be prompted to RE-GENERATE your features. If you have existing test say in specflow runner, it will be over-written and replaced. Your specflow is ms test ready.

Run unit test as you normally would in visual studio.

3. Specflow NUnit - Specflow offers support for nunit as well. You need to install the package

Install-Package SpecFlow.NUnit
Install-Package SpecFlow.NUnit.Runners

Yeap, you need a runner, otherwise you probably won't be able to run anything.

Great, now you're ready to update your app.config changes.

When you SAVE your file, you will be prompted to RE-GENERATE your features. click "yes" and let magic happens. If you have existing test say in specflow runner, it will be over-written and replaced. Your specflow is ms test ready.


If you don't want to get a license, use option 2 and 3 above. Conversion is pretty straight forward.


Popular posts from this blog

Android Programmatically apply style to your view

Applying style to your view (button in this case) dynamically is pretty easy. All you have to do is place the following in your layout folder (res/layout)
Let's call this file : buttonstyle.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=""> <item android:state_pressed="true" > <shape> <solid android:color="#449def" /> <stroke android:width="1dp" android:color="#2f6699" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startColor="#449def" a…

OpenCover code coverage for .Net Core

I know there are many post out there getting code coverage for .dotnetcore. I'm using opencover to address this needs.

In case, you do no want to use opencover and wanted to stick with vs2015 code coverage, you can try to copy Microsoft.VisualStudio.CodeCoverage.Shim.dll from C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\coreclr\ and drop it into your project "bin\Debug\netcoreapp1.0" folder.  Please note : you need to be on VS2015 Enterprise to do this. 

To get started, I guess we need to add OpenCover and ReportGenerator for our test projects, as shown in diagram below :-

When nuget packge gets restored, we will have some binaries downloaded to our machine and we going to use this to generate some statistics. I think the biggest issue is to getting those command lines work.

In dotnetcore, we run test project using "dotnet test" (assuming you are in the test project folder - if not please go there)  So we add this …

DataTable does not have AsEnumerable

I have problem locating my AsEnumerable extension method in my DataTabe (System.Data). Thank god for this post by Angel

I was able to find this method once i have added reference to the following assembly.

C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll

Try to do a dummy Build and you should be able to get it.