VS Integration Breaking Changes – Affects ALL users!

The stable SpecFlow V3 has been released! Check out our latest blog post!

The upcoming SpecFlow 3 release will require an update to the Visual Studio extension for SpecFlow. Because the extension is normally updated automatically whenever a new version is released, this change has the potential to affect all users, not just those that upgrade to version 3! Please read the following information in detail.

What will break?

The new extension will not be compatible with versions of SpecFlow earlier than 2.3.2. If you are using an earlier version of SpecFlow, you should make sure that you have disabled automatic updates for the SpecFlow extension in Visual Studio. To do so:

  1. Select Tools | Extensions and Updates from the menu in Visual Studio.
  2. Enter “SpecFlow’ in the search field to restrict the entries in the list.
  3. Click on the “SpecFlow for Visual Studio” entry and disable the Automatically update this extension check box.
  4. This will prevent newer versions of the extension from being installed automatically. Once you are ready to upgrade to SpecFlow 3, you can enable this option again.

What limitations are there?

Because the Visual Studio extension can only be installed once per Visual Studio installation, you will not be able to mix SpecFlow 3 projects with projects that use a version of SpecFlow prior to 2.3.2.

How will the update be handled?

Our intention is to release a preview version of the Visual Studio extension that will not trigger automatic updates in Visual Studio for the duration of the preview period. If you want to try out the preview version of SpecFlow 3, you will need to add the feed to Visual Studio manually to install the new version of the extension. We will provide additional details on how to do this once the preview is available.

Once SpecFlow 3 has been officially released, we will update the live Visual Studio extension with the new version. This will cause your extension to automatically update if you have not disabled automatic updates (see above). From this point on, users of older versions of SpecFlow will need to download and install the compatible version of the Visual Studio extension manually and ensure that automatic updates are disabled.

I see a potential pitfall. What should I do?

If you see any potential pitfalls in this approach, please, let us know now! If you have suggestions for how to make this process easier, we would like to hear them! You can contact us at support@specflow.org.

SpecFlow+ LivingDoc New Version and Action Required to Use it

SpecFlow+ LivingDoc has been updated and is now available on the Visual Studio marketplace.

The new version of LivingDoc contains the following new features and bug fixes:

  • Show builds for other branches than master (dropdown menu to select branch)
  • Store the selected build definition/branch per user (instead of per project as before)
  • If there is no successful build on the selected definition/branch yet, we show a message
  • “Queue build” button uses the selected branch, latest commit and current build definition version

Furthermore in the next hours every collection administrator will receive an e-mail with a notification. Because of the changes in this update, LivingDoc needs additional permissions to access your project/repository.

Your notification will look similar to this one.

You will be unable to use the new features until you grant the required permission to LivingDoc!

SpecFlow+ LivingDoc 0.2.6 Released

SpecFlow+ LivingDoc has been updated to 0.2.6 and is now available on the Visual Studio marketplace.

New features and UI Improvements

  • When searching, nodes in the tree are only displayed if they contain the search term directly, or if a child node contains the search term. Nodes with no hits are now hidden.
  • Indirect matches are now more visible in the tree
  • The last successful build and its date are displayed when viewing the documentation. If a build has failed since the last successful build, or a build is currently in progress, this information is also displayed.
  • ISO format is used for the date of builds

Bug Fixes

  • Fixed strange search results when doing a full search for ‘0’ (zero)
  • Fixed issue with the currently selected node being displayed in the tree even if it does not match the search criteria
  • Fixed a latency issue resulting in missing build info

SpecFlow+ LivingDoc 0.2.2 Released

SpecFlow+ LivingDoc 0.2.2 has been released and is available on the Visual Studio marketplace. This version includes a number of QOL improvements for managing builds:

New features

  • You can now select a project language in the build task itself. The previous fallback was to use English as the language of the feature files. This would cause problems in projects using other languages, if only the folder containing the repository was selected as the source, meaning the language settings in the app.config file were ignored.
  • The build selector is now more streamlined, making it easier to locate the desired build:
    • Builds are sorted alphabetically
    • Only those builds that contain the LivingDoc step are displayed (TFS 2018 and VSTS only!)

Bug Fixes

  • Fixed “The attribute “Update” in element None/Compile is unrecognized” errors
  • Fixed “Not all required parameter are set” when the project path parameter ends with “\”
  • Fixed “System.NullReferenceException” when the project contains empty feature files
  • Fixed issue where Scenario Outline parameters in Table headers are not replaced

End of Visual Studio 2013 Support Imminent

We will remove support for Visual Studio 2013 with the upcoming release of SpecFlow 3 (due to be released soon). Downloads for the Visual Studio extension account for only a fraction of 1% of all downloads (a ratio of roughly 400:1), so we want to invest our time and resources elsewhere. For this reason, we will no longer support Visual Studio 2013 with SpecFlow 3, meaning there will be no more updates of the VS 2013 integration.

If you are still using Visual Studio 2013 and will want to upgrade to SpecFlow 3, we suggest that you start mapping out your upgrade path so you are prepared for the new release in time.

SpecFlow+ Runner 1.8 Released

SpecFlow+ Runner 1.8 has been released and is available for download from NuGet. The main changes in this version are:

  • Support for SpecFlow 2.4
  • Change to the behaviour of the test adapter for compatibility with Visual Studio 15.8

This version also includes a number of smaller bug fixes.

SpecFlow 2.4 Released

SpecFlow 2.4 has been released and is now available for download from NuGet. This is likely to be the last release of SpecFlow before we release SpecFlow 3.

SpecFlow 2.4 includes a number of new features:

  • Added ability to convert type to same type or one of the base types #1110
  • Added support for customization of dependency injection at feature level via a runtime plugin event to raise feature dependencies #1141
  • Allow marking steps as Obsolete and have a configurable behavior for it #1140
  • IGherkinParser and IGherkinParserFactory interfaces added to support Gherkin Parser pluggability #1143
  • Assist: remove accents from column headers and property names when comparing objects to a table #1096
  • Added NUnit current TestContext scenario container registration. See #936
  • Array & List support for strings and enums when instantiating class from Specflow table #1018
  • MSBuild: Experimental support for deleting code-behind files on clean and rebuild when MSBuild #1167, #1208
  • MSBuild: Experimental support for Net.SDK project system, only for targeting desktop framework, .net core is supported and won’t work #1223
  • Changed Parameter handling of specflow.exe #1112

There are also a number of bug fixes. The full list of changes can be found here.

 

Don’t forget to regenerate your features and restart Visual Studio after upgrading!

 

SpecFlow and PackageReference

By default, the packages used in SpecFlow projects are stored in packages.config. However the new Visual Studio projects instead use the PackageReference element to reference packages. When using the PackageReference element, generator plugins will not be found, and you will see errors similar to the following:

Unable to find plugin in the plugin search path: SpecRun. Please check http://go.specflow.org/doc-plugins for details.
#error TechTalk.SpecFlow.Generator

This is due to SpecFlow not searching for the package in the correct location. To ensure that the plugin is found, you need to specify the path explicitly in your app.config file.

To do so, enter the path to the appropriate path in the plugins element of your app.config file in this case, e.g.:

<plugins>
      <add name="SpecRun" path="%USERPROFILE%\.nuget\packages\specrun.specflow.2-3-0\1.7.0\lib\net45" />
</plugins>

IMPORTANT! You will need to manually update this path when upgrading to a newer version of the package, as the path contains the version number (e.g. “1.7.0” in the above example).

You can find a sample project using the new project format here. The relevant line in the app.config file is here.

Note: This requires SpecFlow 2.3.2 of higher. This step should not be necessary once SpecFlow 3 is released.

SpecFlow+ Runner and Excel 1.7 Released

SpecFlow+ 1.7 Runner

SpecFlow+ 1.7 Runner has been released. This version includes support for SpecFlow 2.3, as well as the following changes:

Fixes

  • runtests.cmd: uses msbuild.exe from path and not from %windir%\Microsoft.NET\Framework\v4.0.30319
  • Log entries are no longer written to the report file if you define the name of the report in your .runsettings file
  • VisualStudio.srProfile is used if it exists and the test run is started from within VisualStudio

 

SpecFlow+ 1.7 Excel

SpecFlow+ 1.7 Excel has been released. This version includes support for SpecFlow 2.2.1 and SpecFlow 2.3, as well as the following changes:

  • Use SpecFlow.Tools.MsBuild.Generation for SpecFlow 2.3 out of the box

SpecFlow 2.3 Released

SpecFlow 2.3 has been released with the following changes:

New features

Fixes

API Changes

Miscellaneous

A new NuGet package, “SpecFlow.Tools.MsBuild.Generation”, is available to easily enable the code-behind generation when building your project. The documentation will be updated soon.