Reputation: 463
Result: built test is not shown in the Test Explorer. Why?
I do it according to this video
Upvotes: 23
Views: 32412
Reputation: 937
For me, I changed from using direct DLL references to using the NuGet references of version 3.1.7.4 of SpecFlow and this solved the problem.
I needed to reference "SpecFlow", "SpecFlow.NUnit" and "SpecFlow.Tools.MsBuild.Generation". and then clicked the "Show All Files" button in Visual Studio to see the code behind file at a sibling level to it associated Feature file (this used to be an associated child file of the feature file in older versions).
I also need to use the "Include In Project" context menu item on the code behind file, for tests to show up in Visual Studios "Test Explorer".
NOTE: I did try to unzip the Specflow required files from the NuGet package and reference them directly in my project to be consistent with other direct references in my project (non-NuGet references) but this doesn't seem to work and you have to use the NuGet reference. I found an closed issue in github, which states that we have to use the Nuget reference to get the tests to work in Test Explorer: https://github.com/techtalk/SpecFlow/issues/1617
Upvotes: 2
Reputation: 109
I tried installing the Nugget package
SpecFlow.Tools.MsBuild.Generation
with the same version than specflow and now I can see the test in TestExplorer, other ways not works for me.
I already had installed 1 from
Nugget Package Specflow
Specflow.NUnit
Nunit
Nunit3TestAdapter
and the extension for Visual Studio for Specflow a NUnitTestAdapter
Upvotes: 0
Reputation: 1963
For me, the issue was the TestAssemblyPath in my srprofile file. It didn't match my actual dll name.
Upvotes: 1
Reputation: 588
In my case all the approaches above didn't work. My solution: I don't know why, but - I re-installed "Specflow for Visual Studio 2015" in "Tools => Extensions and Updates", then I've created a new feature file (old still didn't work), and this new feature-file works correctly.
Upvotes: 2
Reputation: 916
In my case the reason why tests weren't discovered were because I was using Resharper build.
As soon as I went to: Resharper -> Options -> Tools -> Build -> General: "Use ReSharper Build"(untick), then all tests were suddenly discovered.
Upvotes: 2
Reputation: 572
I'm running SpecFlow tests with SpecRunner and had this same problem, a couple of times as a matter of fact. Having tried all of the above suggestions, I found that the only solution to the problem was to uninstall and reinstall the SpecRun NuGet package. Next build, tests present in Test Explorer window as expected.
Upvotes: 2
Reputation: 373
Visual Studio can change the default processor architecture when it loads. While looking endlessly trying to figure out the issue, I finally figured it out, that it wasn't really Specflow causing the issue.
If you have references that require a special architecture, it will prevent the tests from showing up in the test explorer. Change the architecture to x86 or x64 based on your needs.
Another thing you can do to see the build issues is open the Output window and change the dropdown to Tests during build. It will highlight any information of things taking place during your build.
I felt somebody should mention it just in case.
Upvotes: 5
Reputation: 595
if the tests are not showing in the test explorer you need to install NUnit test adapter :
go to Tools->Extensions and updates ->Online->Visual Studio Gallery->Tools->Testing and select NUnit Test Adapter
Upvotes: 17
Reputation: 7457
I experience this same problem, but the solution was different.
Following the advice on a SpecFlow Github issue, the following worked for me:
Upvotes: 23
Reputation: 32936
in order to configure it to generate MSTest tests you need to add this to your app.config:
<specFlow>
<unitTestProvider name="MSTest"></unitTestProvider>
</specFlow>
Upvotes: 23