C# SpecFlow有解析问题
我在解析.feature文件中的步骤时遇到问题,实现是在steps.cs文件中定义的。除此之外,在.feature文件中的同一场景中,仅在上面几行就成功解析了同一步骤。所有步骤都成功绑定,但最后两个步骤绑定失败,尽管这些步骤第二次出现 我试图删除%TEMP%中的.cache文件,但事实并非如此。除此之外,步骤定义如下: 在steps.cs文件中,当我执行Ctrl+Alt+Shift+S时,我会识别出两个步骤,这是正常的 我们使用VS 2015、specflow for VS2015和SpecFlowSingleFileGenerator作为生成器。VS2019也会发生同样的情况,specflow用于VS2019,SpecFlowSingleFileGenerator作为生成器。 我必须说,我们有很多场景和功能,它们表现得很好(使用非常基本的正则表达式) 有人知道这件事的线索吗 另外,当我在VS的输出窗口中启用跟踪(工具->选项->规范流)时,我得到消息:C# SpecFlow有解析问题,c#,regex,cucumber,specflow,gherkin,C#,Regex,Cucumber,Specflow,Gherkin,我在解析.feature文件中的步骤时遇到问题,实现是在steps.cs文件中定义的。除此之外,在.feature文件中的同一场景中,仅在上面几行就成功解析了同一步骤。所有步骤都成功绑定,但最后两个步骤绑定失败,尽管这些步骤第二次出现 我试图删除%TEMP%中的.cache文件,但事实并非如此。除此之外,步骤定义如下: 在steps.cs文件中,当我执行Ctrl+Alt+Shift+S时,我会识别出两个步骤,这是正常的 我们使用VS 2015、specflow for VS2015和SpecFl
[08:51:21.6011171] EditorParser: Start full parsing
[08:51:21.6041087] EditorParser: Finished full parsing in 2 ms, 6 errors
编辑:当我在打开解决方案时第一次打开.feature文件时,它一眼就能很好地解析所有内容。但30秒后,一些步骤过渡到无法识别的状态,如上所述
编辑1:似乎正则表达式的这一部分产生了问题-\s*(对于远程点“”(*)”?
。
当我把空格放在大括号()之前时,我得到了很好的解析结果。但是我的步骤不再起作用了
编辑2:删除图像
编辑3:我收到Andreas关于这个主题的邮件:
当绑定的正则表达式变得复杂时,Visual Studio扩展无法正确匹配它们。我担心您的正则表达式已经变得复杂了。
运行库应该可以很好地处理它。
根据我的经验,在正则表达式中进行此类检查很难在运行时看到错误。
我想你只会得到一个例外,那就是这个步骤是不匹配的。
如果我在绑定中的可能值范围受到限制,我总是会进行运行时检查,如果检查不通过,就会抛出异常。您是否尝试删除生成的c#文件并重新编译?是的,我删除了.feature.cs文件并保存到.feature文件。我得到了新的.feature.cs文件,但问题仍然存在。在生成的fi中le,下一行出现两次(我只粘贴一次):testRunner.Then(“断言成功执行”,((字符串)(null)),((TechTalk.SpecFlow.Table)(null)),“Then”);最后两个步骤绑定失败是什么意思?您是否收到错误?您可以右键单击这些步骤并“转到定义”吗?您是否尝试过删除解决方案根目录中的.vs文件夹?@greg这就像我在.feature文件的屏幕截图上显示的一样。您看到了之后和最后两个步骤中如何不被识别为关键字吗?我无法从这些步骤导航到步骤定义。如果我右键单击这些步骤,“转到定义”将被禁用并显示为灰色。我还没有尝试删除.vs文件夹,但我会在到达办公室后尝试。我会再次说,我们有很多解析良好的场景,但这个示例取自不同团队的解决方案,我将其复制到我们的解决方案中,以检查它是否存在一些不良设置。但它始终具有相同的不良行为。