Changelog
v2.0.0 - beta
Breaking changes
- The NuGet package has been renamed and split:- SpecSync.TFS- contains the synchronization tool
- SpecSync.TFS.SpecFlowPlugin- contains the SpecFlow plugin required to synchronized automated test cases.
- SpecSync.MTM- obsolete package, will load SpecSync.TFS, SpecSync.TFS.SpecFlowPlugin has to be added manually if necessary
 
- The sycnhronization tool has been renamed from SpecSync4MTMtoSpecSync4TFS
- The configuration of the synchronization has been moved to a configuration file (although a few options can be overridden from the command line). By default the config file should be named as specsync.json. You can use different file names, but in that case you have to provide the path for the config file for the synchronization tool. Open the SpecSync config files in Visual Studio (or other editor that supports JSON schema) to get auto-completion for editing and documentation hints if you hover your mouse over a setting. See configuration options and samples at http://speclink.me/specsyncconfig. You can also check thespecsync-sample.jsonfile in thedocsfolder of the NuGet package.
- The two-way synchronization has been reworked to be able to support a more stable development process. The synchronization has been split into two independent actions: push and pull. The new process should follow a pull-merge/resolve-verify-push model.
- Tag filtering has been split to tag filter and tags scope. Tag filter has to be specified on the command line (--tagFilter), while tag scope has to be specified in the config file (local/tags).- Tag scope: You can specify a tag expression in the localsettings to define the scope of the synchronized scenarios. E.g. if you generally would like to include or exclude scenarios from synchronization, specify the tag expression here. Out of scope scenarios are not added (removed) from test suite. (Same as--tagsoption in v1.)
- Tag filter: You can specify a tag expression to focus on the synchronization of a few scenarios during development. Filtered out scenarios are added (kept) in test suite.
 
- Tag scope: You can specify a tag expression in the 
- If a scenario was linked to a test case that does not exist, SpecSync reports this as an error (in v1 it linked to a new scenario and replaced the wrong tag)
- The 'state' field of the test case is set to the value provided in configuration synchronization/state/setValueOnChangeTonot only when the test case changed (v1) but also when the test case is created.
New features
- Support for specifying test case field default values.
- Support for skipping the ScenarioorScenario Outlineprefixes in test case title.
- Test case tag prefix name (by default tc) can be configured.
v1.6.0 - 2018/07/25
- Support for SpecFlow v2.3.*
- Support for synchronizing scenarios from a branch to a temporary set of test cases (see --branchTagPrefixoption, experimental)
- Fix: Generating feature-file code-beind files fail with the SpecFlow Visual Studio integration v2017.1.11 or later.
- Fix: Do not remove filtered out test cases from the test suite.
- Fix: Invalid tools version error when back-syncing new test cases.
- Fix: Handle  in test cases.
- Fix: Use proper space encoding in the URL specified in the @tfstag.
- Fix: Do not add @tfstag to feature if otherwise not changed (scenarios skipped)
- Fix: Space handling in TFS collection name.
- Fix: Missing parameter in paremetrized test case if the Scenario Outline placeholder is used in a DataTable.
- Improved error handling
v1.5.0 - 2018/04/11
- Support for SpecFlow v2.3.1 (for SpecFlow v2.2.1, please use v1.4.*)
v1.4.1 - 2018/04/10
- Fix: ArgumentOutOfRangeException when syncronizing empty feature file
- Fix: Do not count skipped scenarios in summary
- Improved error handling
v1.4.0 - 2018/03/20
- Use new TFS REST API (supports TFS 2015+)
- Support synchronizing non-SpecFlow projects with the --listFilePathoption. See page Using SpecSync with Cucumber for details.
- Allow executing the synchronzation from OSX and Linux systems. See page Using SpecSync on OSX/Linux for details.
- Filter scenarios to be synchronized with tag expressions using the --tagsoption.
- --skipAutomationsupports tag expressions.
- Improved test case formatting options (see Configuring the format of the synchronized test cases)- Synchronize Thensteps to the expected results column of the test case steps by specifying the--useExpectedResultoption.
- Synchronize data tables as plain text by specifying the --syncDataTableAsTextoption.
- Skip adding the Background: prefix for background steps by specifying the --doNotPrefixBackgroundStepsoption.
- Force synchronization even if the scenario text did not change by specifying the --forceoption. This is useful after changing formatting options like--useExpectedResult.
 
- Synchronize 
- Better handling invalid Gherkin files.
- Generate @tc:123tags on new lines (before the first existing tag line).
- Update existing (invalid or incomplete) @tc:tags instead of generating a new one.
v1.3.2 - 2017/10/31
- Fix SpecFlow+ Runner compatibility issue for Scenario Outlines
v1.3.1 - 2017/10/10
- Feature: Specify an area or an iteration for the newly created test cases using --areaPathForCreateand--iterationPathForCreateoptions See Add new test cases to an Area or an Iteration for details.
- Upgrade to SpecFlow 2.2.1.
- Fix project loading issues.
- Fix SpecFlow+ Runner integration issue.
- Fix Newtonssoft.Json loading issue.
- Fix IndexOutOfBounds error when synchronizing data tables with empty cells.
v1.2.0 - 2017/03/31
- Support synchronizing '@us:123' style tags to links between the test case and other work items. The tag prefixes and the link type can be specified. See Linking work items using tags for details.
- Small fixes in Scenario Outline table handling
- Fix compatibility issue for running synchronized test cases using the TFS lab environment.
- Add application icon
v1.1.6 - 2016/08/11
- Fix authorization problem with VSTS for Alternate authentication credentials and Personal access tokens
- Set test case tags to the tags of the scenario
- Only update changed test cases
- Synchronize automation does not need to have a compiled test assembly
- Feature files are automatically regenerated if changed
- Optionally set test case state to a configured value when test case is updated
- Synchronize test cases to test suites
- Support for SpecFlow+ Excel examples
- More robust error handling
- Two-way synchronization (beta)
v1.0.1 - 2016/03/17
- Only display the exception messages by default, you can use the --verboseoption to get the stack trace.
- The tool returns with non-zero exit code if there was an error.
- The ESC key can be used to cancel password entering.
- Allow specifying environment variables in user name.
- Fix tag placing issue.
- Allow more authentication options (sign-in prompts, domain account)
- Tested with TFS 2013.
v1.0.0 - 2016/02/24
Initial version used in the demo video in the intro post.