Giter VIP home page Giter VIP logo

deveroom-visualstudio's Introduction

Deveroom - a Visual Studio extension for SpecFlow

Many BDD teams working on formulating scenarios aim to produce a real living documentation, in this activity a feature file editor can be a great help as it saves typing, time and energy.

Deveroom is a feature file editing tool in Visual Studio, developed by the creator of SpecFlow.

Build Status

Supported platforms

Visual Studio

SpecFlow

  • All SpecFlow versions from v1.9, including SpecFlow v3

.NET

  • .NET Framework (for SpecFlow v1.9-v3)
  • .NET Core (for SpecFlow v3)

Installation

Deveroom can be installed directly from Visual Studio using the extension manager. See detailed instructions at the Installation documentation page.

Please also help other users by rating the extension at the Visual Studio Marketplace: Deveroom for Visual Studio 2017, Deveroom for Visual Studio 2019

Contributing

All contributors are welcome! More information about development and testing guidelines are coming soon.

Important Blog Entries

See Also

License

Deveroom is licensed under the MIT license.

Copyright (c) 2019 Spec Solutions and Gaspar Nagy, https://www.specsolutions.eu

deveroom-visualstudio's People

Contributors

dependabot[bot] avatar epresi avatar gasparnagy avatar mbendtsen avatar nemesv avatar scasteran avatar tlecomte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

deveroom-visualstudio's Issues

Error while building the project - Unable to copy file "obj\Debug\..." to "bin\Debug\..."

I am getting the following error while trying to build after opening a .feature file in Visual Studio:

Unable to copy file "obj\Debug<ProjectName>.dll" to "bin\Debug<ProjectName>.dll". The process cannot access the file 'bin\Debug<ProjectName>.dll' because it is being used by another process.

On killing the processes for deveroom-specflow-v1.exe, and after deleting the bin\debug folder (build configuration is Debug), the project builds successfully. But on opening a .feature file, build fails with the same error as above.

My environment:
Windows 7 Enterprise
Microsoft Visual Studio Enterprise 2017 version 15.9.10
Application type: .NetFramework Class Library Unit Test Project
I have ensured that the extension "SpecFlow for Visual Studio 2017" is disabled.

When I change the build configuration to "Release", it builds successfully.

Output log from Deveroom:

Info: .ctor: Starting Deveroom...
Info: CreateProjectScope: Initializing project:
Info: OnSettingsInitialized: Project settings initialized
Warning: RecalculateBindingRegistryInternal: Error during binding discovery.
Command executed:
<ProjectName>\bin\Debug> C:\USERS<UserName>\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\15.0_49D9668A\EXTENSIONS\LJN232NY.HTR\Connectors\V1\deveroom-specflow-v1.exe discovery <ProjectName>\bin\Debug<ProjectName>.dll <ProjectName>\App.config
Exit code:
Message:
Process C:\USERS<UserName>\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\15.0_49D9668A\EXTENSIONS\LJN232NY.HTR\Connectors\V1\deveroom-specflow-v1.exe discovery <ProjectName>\bin\Debug<ProjectName>.dll <ProjectName>\App.config took longer than 10 min to complete

Missing Feature: Navigating from a Binding to Steps in Gherkin Files

In the original extension we can navigate from code to usage in feature files, if there are many we see list of them

https://specflow.org/documentation/Visual-Studio-Integration-Navigation-Features/

Navigating from a Binding to Steps in Gherkin Files
To navigate from a step definition method to the matching step(s) in your Gherkin feature file(s):

Place your cursor in a step definition method.
Right-click and select Go To SpecFlow Step Definition Usages from the context menu, or press Ctrl+Shift+Alt+S (configurable shortcut).
If only one match exists, the feature file is opened. If more than one matching step is defined in your feature files, select the corresponding feature file from the list to switch to it.

annoying warning with specflow 3

Hi)
Thanks for your product, love it!

I'm using SpecFlow 3.0.225 and VS 2019, and my problem is that I get these popup warnings every time I save edited feature file:
'Warning: ShowProblem: User Notification: Unable to find SpecFlow tools folder: 'C:\Users{username}.nuget\packages\specflow\3.0.225\tools'. Build solution to ensure that all packages are restored. The feature file has to be re-generated (e.g. by saving) after the packages have been restored.'
Thing is SpecFlow 3 doesn't have tools folder, its content was moved to separate package SpecFlow.Tools.MsBuild.Generation.
I'm kinda tired of these popups, how can I suppress them at least? Cause everything else works fine 🙂

Code format is not working in .feature file

Hi,

I am not sure if this is a valid issue for deveroom. Please close it if it is not related.

I try to format code with key combination (ctrl+K , ctrl+D) to format feature file, but VS 2019 just ignore it. --> With a message show on footer bar (The key combination is bound to command (Format Document) which is not currently available.)

Devroom Integration with SpecFlow+

Hi, I am using Specflow+. When I install a devroom I got a warning that I have Specflow+ and Devroom installed and need to uninstall one in case to use the other one. Can I use both Speclow+ and Devroom?
Thank you

Errors and warnings while building deveroom solution

So it happened. My curiosity won, and I cloned deveroom project.
Using VS2019.
I updated missing required packages according to Contribution.md ( I was missing only the Visual Studio extension development package)
And at last, I tried to build the project.
There were lots of warnings coming from the static analysis tool (about 160+). I assumed it comes from a different (maybe more strict) approach to coding in our local project, so I am not taking those into the topic.
But I wonder about only two errors.
image

MC1003	Project file cannot specify more than one ApplicationDefinition element.	Deveroom.VisualStudio.UI.Tester	C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.WinFX.targets	243	

BG1003	The project file contains a property value that is not valid.	Deveroom.VisualStudio.UI.Tester	C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.WinFX.targets	243	

When I am checking .csproj and .xaml properties, everything seems to be fine, but VS still throws them while rebuilding project Deveroom.VisualStudio.UI.Tester
I unloaded Deveroom.VisualStudio.UI.Tester temporarily, and solution builds fine
Is it the case, that I have .NetCore 3.x present in my system?
Or I am missing something?

Specflow3 + Visual Studio 2015 default XML namespace of the project must be the MSBuild xml namespace

When I startup Visual Studio 2015 I get the following error:

The default XML namespace of the project must be the MSBuild xml namespace. If the project is authored in the MsBuild 2003 format, please add
xmlns='http://schemas.microsoft.com/developer/msbuild/2003" to the element. If the project has been authored in the old 1.0 or 1.2, please convert to MSBuild 2003 format.
C:<Project path>\packages\SpecFLow.Tools.MsBuild.Generation.3.0.199\build\SpecFlow.Tools.MsBuild.Generation.props.

Links to forum thread https://groups.google.com/forum/#!topic/specflow/qCuKEROkY3Y

Visual Studio 2019 support

Hello,
It would be nice to have support for Visual Studio 2019 since it is released next month.

Thanks

Bindings: Method not found: ConnectorResult.set_Warnings

Performing binding discovery of a project provides:

Warning: RecalculateBindingRegistryInternal: Error during binding discovery. 
Command executed:
  [...]\bin\Debug> [...]\EXTENSIONS\NUUJ25EQ.LKM\Connectors\V1\deveroom-specflow-v1.exe discovery [...]
Exit code: 4
Message: error: Method not found: 'Void Deveroom.VisualStudio.SpecFlowConnector.Models.ConnectorResult.set_Warnings(System.String[])'.

Server stack trace: 
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(String testAssemblyPath, String configFilePath)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(String testAssemblyPath, String configFilePath)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ISpecFlowDiscoverer.Discover(String testAssembly, String configFilePath)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process()
   at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args)

Self note: SpecSync Specs

Display parameters on feature file

Hi there,

Could it be possible when Deveroom display the Steps proposal to add the name of the parameter near its type?
Could be great help for someone who wants to use a Step that has been developped by someone else! :)

Bindings From External Assemblies

Cannot load Steps from External Assemblies.

<specFlow>
  <stepAssemblies>
    <stepAssembly assembly="MySharedBindings" />
  </stepAssemblies>
</specFlow>

tried using the json config as:

{
   "stepAssemblies": {
      "stepAssembly": {
         "@assembly": "MySharedBindings"
      }
   }
}

I keep getting the following error:
Exit code: 4 Message: Error: Exception has been thrown by the target of an invocation. -> Value cannot be null. Parameter name: assemblyString Exception: System.Reflection.TargetInvocationException->System.ArgumentNullException StackTrace: at System.Reflection.RuntimeAssembly.CreateAssemblyName(String assemblyString, RuntimeAssembly& assemblyFromResolveEvent) at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, StackCrawlMark& stackMark, IntPtr pPrivHostBinder) at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, StackCrawlMark& stackMark) at System.Reflection.Assembly.Load(String assemblyString) at TechTalk.SpecFlow.Infrastructure.BindingAssemblyLoader.Load(String assemblyName) in D:\a\1\s\TechTalk.SpecFlow\Infrastructure\IBindingAssemblyLoader.cs:line 14 at System.Linq.Enumerable.SelectListIterator2.MoveNext()
at System.Collections.Generic.List1.AddEnumerable(IEnumerable1 enumerable)
at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection)
at TechTalk.SpecFlow.TestRunnerManager.GetBindingAssemblies() in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 88
at TechTalk.SpecFlow.TestRunnerManager.InitializeBindingRegistry(ITestRunner testRunner) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 69
at TechTalk.SpecFlow.TestRunnerManager.CreateTestRunner(Int32 threadId) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 60
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V3000.SpecFlowV3000Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\V3000\SpecFlowV3000Discoverer.cs:line 21
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\BaseDiscoverer.cs:line 29
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\BaseDiscoverer.cs:line 21
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\ReflectionExtensions.cs:line 17
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ReflectionSpecFlowDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\ReflectionSpecFlowDiscoverer.cs:line 25
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 41
at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\ConsoleRunner.cs:line 27`

Initialisation error with .NET Core 3 and SpecFlow 3.1.21-beta

Feels like I'm a little on the bleeding edge here so perhaps my own fault, but hoping the issue can be fairly easily rectified. The setup is Visual Studio 2019 Preview 1 (installed today), .NET Core 3, Deveroom v1.4.2, xunit v2.4.0. I was getting some errors with the latest SpecFlow build so I upgraded SpecFlow to v3.1.21-beta. When I open the feature file and right-click to define steps, I get the following error:

Info: OnActivityStarted: Starting Deveroom...
Info: CreateProjectScope: Initializing project: blahblah.Specs
Info: OnSettingsInitialized: Project settings initialized: .NETCoreApp,Version=v3.0,SpecFlow:3.1.21-beta
Warning: InvokeDiscovery: Error during binding discovery.
Command executed:
C:\Users\DevAdmin\source\repos\blahblah.Specs\bin\Debug\netcoreapp3.0> C:\Program Files\dotnet\dotnet.exe exec C:\USERS\DEVADMIN\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_8FB92FA6\EXTENSIONS\140EZEFW.IX1\Connectors\V2\deveroom-specflow-v2.dll discovery C:\Users\DevAdmin\source\repos\blahblah.Specs\bin\Debug\netcoreapp3.0\blahblah.Specs.dll ""
Exit code: 4
Message:
Error: Exception has been thrown by the target of an invocation. -> Could not load file or assembly 'TechTalk.SpecFlow, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621) -> Could not load file or assembly 'TechTalk.SpecFlow, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41'.
Exception: System.Reflection.TargetInvocationException->System.IO.FileLoadException->System.IO.FileLoadException
StackTrace:
at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args)
at System.AppDomain.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttribute(Assembly element, Type attributeType, Boolean inherit)
at TechTalk.SpecFlow.Plugins.RuntimePluginLoader.LoadPlugin(String pluginAssemblyName, ITraceListener traceListener)
at TechTalk.SpecFlow.Infrastructure.ContainerBuilder.LoadPlugin(String pluginPath, IRuntimePluginLoader pluginLoader, RuntimePluginEvents runtimePluginEvents, UnitTestProviderConfiguration unitTestProviderConfigration, ITraceListener traceListener)
at TechTalk.SpecFlow.Infrastructure.ContainerBuilder.LoadPlugins(IRuntimeConfigurationProvider configurationProvider, ObjectContainer container, RuntimePluginEvents runtimePluginEvents, SpecFlowConfiguration specFlowConfiguration, UnitTestProviderConfiguration unitTestProviderConfigration, Assembly testAssembly)
at TechTalk.SpecFlow.Infrastructure.ContainerBuilder.CreateGlobalContainer(Assembly testAssembly, IRuntimeConfigurationProvider configurationProvider)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V30.SpecFlowV30P220Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\V30\SpecFlowV30P220Discoverer.cs:line 17
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 29
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 21
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\ReflectionExtensions.cs:line 23
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ReflectionSpecFlowDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\ReflectionSpecFlowDiscoverer.cs:line 20
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 32
at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\ConsoleRunner.cs:line 32

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled.
Please check the error message above and report to https://github.com/specsolutions/deveroom-visualstudio/issues if you cannot fix.
Warning: ShowProblem: User Notification: All steps have been defined in this file already.

I have tried adding the following to the deveroom.json config file but this doesn't seem to help:

{
"specFlow": {
"version": "3.1.21-beta"
}
}

Many thanks in advance.

System.BadImageFormatException

Since the last update I'm getting this when I do a build. If I try to generate step definitions I get told that all steps are bound. If I switch back to SpecFlow I don't get the error.


Info: OnActivityStarted: Starting Deveroom...
Info: CreateProjectScope: Initializing project: Featuretests2
Info: OnSettingsInitialized: Project settings initialized: .NETFramework,Version=v4.7.1,SpecFlow:3.0.225
Warning: InvokeDiscovery: Error during binding discovery. 
Command executed:
  C:\Users\robertm\source\repos\WindowsFormsApp4\UnitTestProject2\bin\Debug> c:\users\robertm\appdata\local\microsoft\visualstudio\15.0_8984b99c\extensions\4v220uaj.2mr\Connectors\V1\deveroom-specflow-v1.exe discovery C:\Users\robertm\source\repos\WindowsFormsApp4\UnitTestProject2\bin\Debug\FeatureTests2.dll C:\Users\robertm\source\repos\WindowsFormsApp4\UnitTestProject2\App.config
Exit code: 4
Message: 
Error: Could not load file or assembly 'file:///C:\Users\robertm\source\repos\WindowsFormsApp4\UnitTestProject2\bin\Debug\FeatureTests2.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Exception: System.BadImageFormatException
StackTrace:

Server stack trace: 
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.RemotingBaseDiscoverer.Discover(String testAssemblyPath, String configFilePath)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.IRemotingSpecFlowDiscoverer.Discover(String testAssembly, String configFilePath)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process()
   at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args)

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled. 
  Please check the error message above and report to https://github.com/specsolutions/deveroom-visualstudio/issues if you cannot fix.
Warning: ShowProblem: User Notification: All steps have been defined in this file already.

Deveroom fails to discover step definitions when App.config does not contain a <specFlow> node

Here is my setup: Specflow 3.0.191 Specflow.tools.MsBuild.Generation 3.0.191 Specflow.NUnit 3.0.191 Visual Studio 2019 Version 16 Deveroom Extension 1.1.1

When I am in a feature file in Visual Studio I am not able to go to the definition of any of my steps. I have tried F12 as well as right clicking on the step and choosing Go To Definition. Neither goes anywhere or pops any kind of error. There is a disconnect that doesn't prohibit the tests from running but does cause the Go To Definition not to work.

I have followed the configuration guide from the Specflow site (https://specflow.org/2019/updating-to-specflow-3/). My tests are running and working. I have deleted the specmap files from the %TEMP% directory and that didn't do anything. I uninstalled/reinstalled the deveroom Visual Studio plugin also which didn't work.

Here is the output from the Deveroom extension:
Info: .ctor: Starting Deveroom...
Info: CreateProjectScope: Initializing project: Automation
Info: OnSettingsInitialized: Project settings initialized
Warning: RecalculateBindingRegistryInternal: Error during binding discovery.
Command executed:
C:\Users\me\source\repos\SPFAutomation\Automation\bin\Debug> C:\USERS\me\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_A2619B6D\EXTENSIONS\2BQDHW0H.REG\Connectors\V1\deveroom-specflow-v1.exe discovery C:\Users\me\source\repos\SPFAutomation\Automation\bin\Debug\Automation.dll C:\Users\me\source\repos\SPFAutomation\Automation\App.config
Exit code: 4
Message:
Error: Exception has been thrown by the target of an invocation. -> Value cannot be null.
Parameter name: node
Exception: System.Reflection.TargetInvocationException->System.ArgumentNullException
StackTrace:
at System.Xml.XmlNodeReader..ctor(XmlNode node)
at TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler.CreateFromXml(XmlNode xmlContent)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V3000.CustomConfigurationLoader.Load(SpecFlowConfiguration specFlowConfiguration)
at TechTalk.SpecFlow.Infrastructure.ContainerBuilder.CreateGlobalContainer(IRuntimeConfigurationProvider configurationProvider)

Server stack trace:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args)
at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Object[] args)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V3000.SpecFlowV3000Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(String testAssemblyPath, String configFilePath)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(String testAssemblyPath, String configFilePath)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ISpecFlowDiscoverer.Discover(String testAssembly, String configFilePath)
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process()
at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args)

Step completion should use word containment for filtering the list

(Extracted from issue #16)

Currently, the step completion is filtered with contains, this means that if you enter two words "foo bar" than only those step definitions are found where these two words are exactly after each other in this order. So for example "foo baz bar" or "bar foo" is not shown.

The filtering should use word containment, so basically, each word from the filter criteria has to be included in the shown item in any order.

Syntax coloring of non-example parameters in scenario outline step not working when example parameter used in the same step

When using Scenario Outline and using a parameter from the Examples table in a step any additional parameters used in that same step do not have Syntax Coloring regardless of the position of the parameters in the step.

The following example shows working highlighting of a parameter in line 1 and the Example parameter highlighted in green and an additional parameter 'Duration' left white.
image

Here is an example where the white parameter is first. It exhibits the same behavior.
image

Any steps after the affected steps that don't contain example parameters highlight correctly.

Getting "The type initializer 'Equ.MemberwiseEquatable'1' threw an exception" exception when creating feature file for Specflow

Getting "The type initializer 'Equ.MemberwiseEquatable'1' threw an exception" exception when creating feature file for Specflow

Steps:
Click new Item
Select Feature File For Specflow file type
type calculator.feature
Click add

Expected a new feature file is created
Actual getting an exception

Note:

  • Deveroom Version 1.4.0

  • I am able to create a feature file using specflow but deveroom. I tried to uninstall and install back

  • deveroom extensions but still failing

.feature.cs files are not re-generated automatically. Have to re-build the project

I have to re-build the project in order to get .feature.cs files updated.
My guess that it might be related to async steps in my project (I see "Unable to jump to the step definition. No source location detected" for async steps).

Please, let me know if you need more details.
VS 2017 v15.9.10, .netcore 2.2 (or 2.3 - not sure).
Extension version is 1.1.1.

.NET Core Bindings: Project dependency load issue

Discovering dependencies of a .NET Core 2.1 test assembly, where one of the types inherit from WebApplicationFactory<T> leads to error:

Warning: RecalculateBindingRegistryInternal: Error during binding discovery. 
Command executed:
  [...]\bin\Debug\netcoreapp2.1> [...]\NUUJ25EQ.LKM\Connectors\V2\deveroom-specflow-v2.exe discovery [...]
Exit code: 4
Message: error: Exception has been thrown by the target of an invocation. -> Unable to load one or more of the requested types.
Could not load file or assembly 'Microsoft.AspNetCore.Hosting.Abstractions, Version=2.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args) in W:\Devero\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\ReflectionExtensions.cs:line 17
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ReflectionSpecFlowDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Devero\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\ReflectionSpecFlowDiscoverer.cs:line 25
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Devero\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 41
   at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Devero\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\ConsoleRunner.cs:line 27

Self note: B1-pre

Error when backslash is included in DataTable

While writing steps, occurred that exception is thrown while parsing backslash in DataTable
While I was creating scenario with such table, I forgot to press Shift key to get |, getting backslash instead:
| TestColumn | TestColumn2\

Error: ParseAndCollectErrors: Exception during Gherkin parsing: System.InvalidOperationException: Enumeration already finished. at System.CharEnumerator.get_Current() at Gherkin.GherkinLine.<SplitCells>d__18.MoveNext() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Gherkin.GherkinLine.d__17.MoveNext()
at System.Linq.Buffer1..ctor(IEnumerable1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source) at Gherkin.TokenMatcher.Match_TableRow(Token token) at Gherkin.Parser1.<>c__DisplayClass29_0.<Match_TableRow>b__0()
at Gherkin.Parser1.HandleExternalError[T](ParserContext context, Func1 action, T defaultValue)
at Gherkin.Parser1.Match_TableRow(ParserContext context, Token token) at Gherkin.Parser1.MatchTokenAt_15(Token token, ParserContext context)
at Gherkin.Parser1.MatchToken(Int32 state, Token token, ParserContext context) at Deveroom.VisualStudio.Editor.Services.Parser.DeveroomGherkinParser.InternalParser.MatchToken(Int32 state, Token token, ParserContext context) at Gherkin.Parser1.Parse(ITokenScanner tokenScanner, ITokenMatcher tokenMatcher)
at Deveroom.VisualStudio.Editor.Services.Parser.DeveroomGherkinParser.Parse(TextReader featureFileReader, String sourceFilePath)
at Deveroom.VisualStudio.Editor.Services.Parser.DeveroomGherkinParser.ParseAndCollectErrors(String featureFileContent, IDeveroomLogger logger, DeveroomGherkinDocument& gherkinDocument, List1& parserErrors)

Deveroom init: FileNotFoundException: Could not load file or assembly System.Net.Http

Opening a feature file in Visual Studio (probably before VS 15.9.6) causes:

System.IO.FileNotFoundException: Could not load file or assembly &apos;System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&apos; or one of its dependencies. 

Upgrading to latest VS(?) and/or installing .NET SDK Version ??? solves the issue.

Full stack trace:

A MEF Component threw an exception at runtime: Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "Deveroom.VisualStudio.ProjectSystem.VsProjectSystem". --->
System.TypeInitializationException: The type initializer for 'Deveroom.VisualStudio.EventTracking.GoogleAnalyticsApi' threw an exception. ---> 
System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
at Deveroom.VisualStudio.EventTracking.GoogleAnalyticsApi..cctor() 
--- End of inner exception stack trace --- 
at Deveroom.VisualStudio.EventTracking.EventTracker.TrackEvent(String category, String action, String label, Nullable`1 value) 
at Deveroom.VisualStudio.EventTracking.EventTracker.TrackOpenProjectSystem(String vsVersion) 
at Deveroom.VisualStudio.ProjectSystem.VsProjectSystem..ctor(IServiceProvider serviceProvider, IVsPackageInstallerServices vsPackageInstallerServices, IVsSolutionEventListener solutionEventListener) in W:\Devero\Deveroom.VisualStudio\Deveroom.VisualStudio.Package\ProjectSystem\VsProjectSystem.cs:line 62 
--- End of inner exception stack trace --- 
at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.CreateValue() 
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.Create() 
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState) 
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState) 
at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose() at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0()

Exit code: 4 with SpecFlow 3.1.62

Hi all,

I have an error on my solution since I update it to work with SpecFlow (3.1.62) / SpecFlow.Tools.MsBuild.Generation (3.1.62) / SpecRun.Runner (3.1.33) and SpecRun.SpecFlow.3-1-0 (3.1.33).
I have a specflow.json in my project
{
"bindingCulture": {
"language": "en-us"
},
"language": {
"feature": "en-us"
},
"plugins": [],
"stepAssemblies": [
{ "assembly": "Hiptest.Tools" },
{ "assembly": "Common" },
{ "assembly": "Features" },
{ "assembly": "DEdge.Common" },
{ "assembly": "DEdge.Extranet" },
{ "assembly": "DEdge.Mobile" },
{ "assembly": "DEdge.BookingEngine" },
{ "assembly": "DEdge.Connectivity" },
{ "assembly": "Availpro.BackOffice" },
{ "assembly": "Availpro.HotelRegistration" },
{ "assembly": "Availpro.Common" },
{ "assembly": "Availpro.Extranet" },
{ "assembly": "Availpro.BookingEngine" },
{ "assembly": "Availpro.Pms" },
{ "assembly": "Fastbooking.Common" },
{ "assembly": "Fastbooking.OpenId" },
{ "assembly": "Fastbooking.Api" },
{ "assembly": "Fastbooking.BackOffice" },
{ "assembly": "Fastbooking.Attraction" },
{ "assembly": "Fastbooking.AdminV2" },
{ "assembly": "ExternalApplications" }
]
}

When I build my solution, Deveroom failed with an Exit code :4:

Info: CheckConfiguration: Configuration changed
Warning: InvokeDiscovery: Error during binding discovery.
Command executed:
C:\Projects\GitProjects\dedge.test.solution\Features\bin\Debug\net472> C:\USERS\AOLETUBO\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_F2157D07\EXTENSIONS\0K4F05FM.S0A\Connectors\V1\deveroom-specflow-v1.exe discovery C:\Projects\GitProjects\dedge.test.solution\Features\bin\Debug\net472\Features.dll C:\Projects\GitProjects\dedge.test.solution\Features\specflow.json
Exit code: 4
Message:
Error: Une exception a été levée par la cible d'un appel. -> Échec de l'initialisation du système de configuration -> Données non valides au niveau racine. Ligne 1, position 1. (C:\Projects\GitProjects\dedge.test.solution\Features\specflow.json line 1) -> Données non valides au niveau racine. Ligne 1, position 1.
Exception: System.Reflection.TargetInvocationException->System.Configuration.ConfigurationErrorsException->System.Configuration.ConfigurationErrorsException->System.Xml.XmlException
StackTrace:
à System.Xml.XmlTextReaderImpl.Throw(Exception e)
à System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
à System.Xml.XmlTextReaderImpl.ParseDocumentContent()
à System.Configuration.XmlUtil..ctor(Stream stream, String name, Boolean readToFirstElement, ConfigurationSchemaErrors schemaErrors)
à System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
à System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
à System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
à System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
à System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
à System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
à System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
à System.Configuration.ConfigurationManager.GetSection(String sectionName)
à System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
à System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
à System.Diagnostics.DiagnosticsConfiguration.Initialize()
à System.Diagnostics.DiagnosticsConfiguration.get_Sources()
à System.Diagnostics.TraceSource.Initialize()
à System.Net.Logging.InitializeLogging()
à System.Net.Logging.get_On()
à System.Net.Http.HttpMessageHandler..ctor()
à System.Net.Http.HttpClientHandler..ctor()
à TechTalk.SpecFlow.Analytics.HttpClientWrapper..ctor()

Server stack trace:
à System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
à System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
à BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
à BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
à System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() à System.Linq.Buffer1..ctor(IEnumerable1 source) à System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
à BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
à BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
à System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() à System.Linq.Buffer1..ctor(IEnumerable1 source) à System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
à BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
à BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
à System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() à System.Linq.Buffer1..ctor(IEnumerable1 source) à System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
à BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
à BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
à System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() à System.Linq.Buffer1..ctor(IEnumerable1 source) à System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
à BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
à BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
à BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
à BoDi.ObjectContainer.Resolve[T](String name)
à TechTalk.SpecFlow.TestRunnerManager.CreateTestRunner(Int32 threadId)
à Deveroom.VisualStudio.SpecFlowConnector.Discovery.V30.SpecFlowV30P220Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath)
à Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(Assembly testAssembly, String testAssemblyPath, String configFilePath)
à Deveroom.VisualStudio.SpecFlowConnector.Discovery.RemotingBaseDiscoverer.Discover(String testAssemblyPath, String configFilePath)
à System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
à System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
à Deveroom.VisualStudio.SpecFlowConnector.Discovery.IRemotingSpecFlowDiscoverer.Discover(String testAssembly, String configFilePath)
à Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process()
à Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args)

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled.
Please check the error message above and report to https://github.com/specsolutions/deveroom-visualstudio/issues if you cannot fix.

I didn't change my specflow.json for the upgrade.. so I don't understand what is going wrong with it.

Anyone as an idea of how I can correct it?

Thanks

(I tried to remove and put back the Deveroom extension)

For your information, there is an issue with SpecFlow 3.1.62 and Cucumber.Messages 7.0. You must use Cucumber.Messages 6.0 (see Andreas' comment : https://groups.google.com/d/msg/specflow/BYwfKbob9dw/qjraFzoDBAAJ )

"Add new feature file" causes assembly load error

With the 1.1.0 release, when Add new feature file is invoked, it provides the error message:

Error: this template attempted to load component assembly 'Deveroom.VisualStudio.Package, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c392b06fa519a0e0'. For more information on this problem and how to enable this template, please see documentation on Customizing Project Templates.

Binding scope not used while searching for step definitions

Using Deveroom 1.4.2
Steps to reproduce:
In feature file Issue.feature, I have step named (example) When I add sth new
Also in another feature file Bind.feature, I have step with the same name.

But the implementations of steps differ, are placed in separate classes and are distinguished using Scope
[Binding, Scope(Feature = "Issue")]

I was expecting that Deveroom solves that properly, but instead, I got an error message that there are ambiguous step definitions
image

Unable to discover / create steps

After adding a new feature file, and writing the text of the given/when/then statements, I right clicked on one of the statements to generate the step file. The following error is generated:

Command executed:
  C:\Users\jonathan\source\repos\AnnealingValidator\AnnealeatingValidator.Tests\bin\Debug\netcoreapp3.0> C:\Program Files\dotnet\dotnet.exe exec C:\USERS\JONATHAN\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_FC286A5D\EXTENSIONS\ZI44EQ4M.Y42\Connectors\V2\deveroom-specflow-v2.dll discovery C:\Users\jonathan\source\repos\AnnealingValidator\AnnealeatingValidator.Tests\bin\Debug\netcoreapp3.0\AnnealingValidator.Tests.dll ""
Exit code: 4
Message: 
Error: Exception has been thrown by the target of an invocation. -> Method not found: 'BoDi.IObjectContainer TechTalk.SpecFlow.Infrastructure.ContainerBuilder.CreateGlobalContainer(TechTalk.SpecFlow.Configuration.IRuntimeConfigurationProvider)'.
Exception: System.Reflection.TargetInvocationException->System.MissingMethodException
StackTrace:
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V3000.SpecFlowV3000Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath)
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 29
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 21
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector\ReflectionExtensions.cs:line 18
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ReflectionSpecFlowDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\ReflectionSpecFlowDiscoverer.cs:line 25
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 41
   at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector\ConsoleRunner.cs:line 32

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled. 
  Please check the error message above and report to https://github.com/specsolutions/deveroom-visualstudio/issues if you cannot fix.
Warning: ShowProblem: User Notification: All steps have been defined in this file already.

'Item with the same key...' error on initialisation of Deveroom - binding could not be discovered.

I'm having a problem with Deveroom - it shows the error below, and (as the error says), navigation, step completion etc. are disabled.

I'd previously had the SpecFlow extension installed. I've now uninstalled and reinstalled Deveroom but still have the problem.

Any thoughts? This is on VS2019.

Info: OnActivityStarted: Starting Deveroom...
Info: CreateProjectScope: Initializing project: PureGym.App.Member.SpecTests
Info: StartRetryInitializeTimer: Project settings not available yet, retry in 5 seconds...
Info: OnSettingsInitialized: Project settings initialized: .NETCoreApp,Version=v2.1,SpecFlow:3.0.155-beta
Warning: InvokeDiscovery: Error during binding discovery.
Command executed:
C:\Users\jameslavery\source\repos\puregym.mobile\test\PureGym.App.Member.SpecTests\bin\Debug\netcoreapp2.1> C:\Program Files\dotnet\dotnet.exe exec C:\USERS\JAMESLAVERY\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_C81F5ABF\EXTENSIONS\LQ2OLSAB.GAG\Connectors\V2\deveroom-specflow-v2.dll discovery C:\Users\jameslavery\source\repos\puregym.mobile\test\PureGym.App.Member.SpecTests\bin\Debug\netcoreapp2.1\PureGym.App.Member.SpecTests.dll C:\Users\jameslavery\source\repos\puregym.mobile\test\PureGym.App.Member.SpecTests\specflow.json
Exit code: 3
Message:
Error: An item with the same key has already been added. Key: Unity.Abstractions
Exception: System.ArgumentException
StackTrace:
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at McMaster.NETCore.Plugins.Loader.AssemblyLoadContextBuilder.AddManagedLibrary(ManagedLibrary library) at McMaster.NETCore.Plugins.Loader.DependencyContextExtensions.AddDependencyContext(AssemblyLoadContextBuilder builder, DependencyContext dependencyContext) at Deveroom.VisualStudio.SpecFlowConnector.Discovery.LoadContextHelper.AddDependencyContextWithCompileDeps(AssemblyLoadContextBuilder builder, String depsFilePath) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\LoadContextHelper.cs:line 82 at Deveroom.VisualStudio.SpecFlowConnector.Discovery.LoadContextHelper.CreateLoadContext(String baseDir, AssemblyName mainAssemblyName, PluginLoaderOptions loaderOptions, IEnumerable1 preferDefaultLoadContextForAssemblies, IEnumerable`1 privateAssemblies) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\LoadContextHelper.cs:line 38
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.LoadContextHelper.CreateLoadContext(String assemblyFile) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\LoadContextHelper.cs:line 18
at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 20
at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.SpecFlowConnector\ConsoleRunner.cs:line 32

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled.

GoTo Definition doesn't work on VS 2017 with Specflow 2.14

I tried this extension instead of regular Specflow one, from what I observed this extension seems to lack in few areas namely:

  1. Goto Definition doesn't work
  2. No provision to see if the step is missing
  3. Cannot execute tests from file directly and also by right clicking on feature file
    Above features might not be standard part of the package but that was my observation

Generating Step Definitions Overwites Previous Definitions

Version: 1.4.2

Steps:

  1. Create a new feature file and add a scenario with undefined steps, e.g.:
Scenario: Add
  Given I have entered 5
  And I have entered 6
  When I press add
  Then the result should be 11
  1. Use "Define Steps (Ctrl+B, D)" to generate the step definitions and press Create
  2. Write a new scenario which uses a new step definition, e.g.:
Scenario: Multiply
  Given I have entered 5
  And I have entered 6
  When I press multiply <---- this step definition is new
  Then the result should be 30
  1. Use "Define Steps" again

Expected: A new step definition is generated and added to the existing step definitions file.

Result: The entire step definition file is overwritten and now only contains 1 step definition.

Unable to jump to async step definitions

Have an async step definition, build the project and try to navigate from step to the step definition.

It shows an error

Unable to jump to the step definition. No source location detected.

(Extracted from #21 by @z41)

Support for SpecFlow assembly references (non-NuGet)

Currently Deveroom detects the installed SpecFlow version from the NuGet package references, therefore it is not able to detect SpecFlow if you reference the SpecFlow assemblies as assembly references.

If Deveroom cannot detect SpecFlow, certain features, like Navigation and coloring undefined steps will not work.

Later we plan to support using SpecFlow assembly references as well, you can use this issue to track the progress.

Binding: Error: CreatePersistentTrackingPosition: Exception: System.ArgumentException: Must be non-negative.

After discovery, the following error is reported in the output pane

Error: CreatePersistentTrackingPosition: Exception: System.ArgumentException: Must be non-negative.
Parameter name: startIndex
   at Microsoft.VisualStudio.Text.Implementation.PersistentSpanFactory.Create(String filePath, Int32 startLine, Int32 startIndex, Int32 endLine, Int32 endIndex, SpanTrackingMode trackingMode)
   at Deveroom.VisualStudio.ProjectSystem.VsProjectSystem.CreatePersistentTrackingPosition(String filePath, Int32 line, Int32 column) in W:\Deveroom\Deveroom.VisualStudio\Deveroom.VisualStudio.Package\ProjectSystem\VsProjectSystem.cs:line 95

In the log file, the line numbers of some of the step definitions are wrong:

{
      "type": "Then",
      "regex": "^a tag \"(.*)\" is added to the scenario in the local workspace$",
      "method": "Steps.Then_a_tag_TAG_is_added_to_the_scenario_in_the_local_workspace(String)",
      "paramTypes": "s",
      "sourceLocation": "#2|16707566|0"
},

.NET Core Bindings: Bindings not discovered on slow machines

When the solution is opened in a way that a feature file gets active immediately (feature file was open and active before solution close), on some slow machines the bindings are not discovered.

On the output pane it displays:

Info: .ctor: Starting Deveroom...
Info: CreateProjectScope: Initializing project: BddWithSpecFlow.GeekPizza.Specs
Info: StartRetryInitializeTimer: Invalid project settings collected, retry in 5 seconds...
Info: StartRetryInitializeTimer: Invalid project settings collected, retry in 5 seconds...
Info: StartRetryInitializeTimer: Invalid project settings collected, retry in 5 seconds...
Info: RetryInitializeTimerTick: Project settings could not be initialized. Build the project to reload settings.

The bug is that the bindings are not discovered even if you rebuild afterwards.

Workaround: close all feature files, close and reopen solution, build the project and only after open the first feature file.

"Could not load file or assembly" error on init

Perhaps a dupe, but I see the following when I open my project in the vs2019:

Info: CreateProjectScope: Initializing project: ....Tests.Integration
Info: OnSettingsInitialized: Project settings initialized: .NETCoreApp,Version=v2.2,SpecFlow:3.0.225
Warning: InvokeDiscovery: Error during binding discovery. 
Command executed:
  D:\Projects\...\bin\Release\netcoreapp2.2> C:\Program Files\dotnet\dotnet.exe exec C:\USERS\APSTU\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\16.0_6C06EFE1\EXTENSIONS\NXRQTRQZ.OXI\Connectors\V2\deveroom-specflow-v2.dll discovery D:\Projects\....dll ""
Exit code: 4
Message: 
Error: Exception has been thrown by the target of an invocation. -> Unable to load one or more of the requested types.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Could not load file or assembly 'Microsoft.Extensions.Identity.Stores, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
Exception: System.Reflection.TargetInvocationException->System.Reflection.ReflectionTypeLoadException
StackTrace:
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at TechTalk.SpecFlow.Bindings.Discovery.RuntimeBindingRegistryBuilder.BuildBindingsFromAssembly(Assembly assembly) in D:\a\1\s\TechTalk.SpecFlow\Bindings\Discovery\RuntimeBindingRegistryBuilder.cs:line 22
   at TechTalk.SpecFlow.TestRunnerManager.BuildBindingRegistry(IEnumerable`1 bindingAssemblies) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 92
   at TechTalk.SpecFlow.TestRunnerManager.InitializeBindingRegistry(ITestRunner testRunner) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 73
   at TechTalk.SpecFlow.TestRunnerManager.CreateTestRunner(Int32 threadId) in D:\a\1\s\TechTalk.SpecFlow\TestRunnerManager.cs:line 61
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.V30.SpecFlowV30P220Discoverer.GetBindingRegistry(Assembly testAssembly, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\V30\SpecFlowV30P220Discoverer.cs:line 20
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.DiscoverInternal(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 29
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.BaseDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\Discovery\BaseDiscoverer.cs:line 21
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Deveroom.VisualStudio.SpecFlowConnector.ReflectionExtensions.ReflectionCallMethod[T](Object obj, String methodName, Type[] parameterTypes, Object[] args) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\ReflectionExtensions.cs:line 23
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.ReflectionSpecFlowDiscoverer.Discover(Assembly testAssembly, String testAssemblyPath, String configFilePath) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\ReflectionSpecFlowDiscoverer.cs:line 20
   at Deveroom.VisualStudio.SpecFlowConnector.Discovery.DiscoveryProcessor.Process() in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector.V2\Discovery\DiscoveryProcessor.cs:line 32
   at Deveroom.VisualStudio.SpecFlowConnector.ConsoleRunner.EntryPoint(String[] args) in W:\Deveroom\deveroom-visualstudio-prod\community\Deveroom.VisualStudio.SpecFlowConnector\ConsoleRunner.cs:line 32

Warning: InvokeDiscovery: The project bindings (e.g. step definitions) could not be discovered. Navigation, step completion and other features are disabled. 
  Please check the error message above and report to https://github.com/specsolutions/deveroom-visualstudio/issues if you cannot fix.

Perhaps could be related to the fact we refer the asp.net core in the test project (dunno why)

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.