Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SpecFlow有解析问题_C#_Regex_Cucumber_Specflow_Gherkin - Fatal编程技术网

C# SpecFlow有解析问题

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

我在解析.feature文件中的步骤时遇到问题,实现是在steps.cs文件中定义的。除此之外,在.feature文件中的同一场景中,仅在上面几行就成功解析了同一步骤。所有步骤都成功绑定,但最后两个步骤绑定失败,尽管这些步骤第二次出现

我试图删除%TEMP%中的.cache文件,但事实并非如此。除此之外,步骤定义如下:

在steps.cs文件中,当我执行Ctrl+Alt+Shift+S时,我会识别出两个步骤,这是正常的

我们使用VS 2015、specflow for VS2015和SpecFlowSingleFileGenerator作为生成器。VS2019也会发生同样的情况,specflow用于VS2019,SpecFlowSingleFileGenerator作为生成器。 我必须说,我们有很多场景和功能,它们表现得很好(使用非常基本的正则表达式)

有人知道这件事的线索吗

另外,当我在VS的输出窗口中启用跟踪(工具->选项->规范流)时,我得到消息:

[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文件夹,但我会在到达办公室后尝试。我会再次说,我们有很多解析良好的场景,但这个示例取自不同团队的解决方案,我将其复制到我们的解决方案中,以检查它是否存在一些不良设置。但它始终具有相同的不良行为。