gpt4 book ai didi

c# - 绑定(bind)中的 SpecFlow 歧义

转载 作者:太空狗 更新时间:2023-10-29 22:26:04 25 4
gpt4 key购买 nike

我使用 Spec-flow 已经有好几天了。我面临“找到多个匹配项。导航到第一个匹配项”,而调试可以解决这个问题,但是当我运行整个解决方案时,由于绑定(bind)中的歧义,它失败了。我在单个项目中运行 4 个 C 尖锐类文件

Feature: ConversionUnencrypted Pdf-Pdf

@mytag
Scenario Outline: ConversionUnencrypted Pdf-Pdf

Given I get Inputs Folder and list of Files <inputFolder> then <getInputTokens>(Multiple bindings for this line)
Given I get <outputDirectory>
Given I set saving Mode <ConversionMode>
Given I convert pdf using Conversion
Given I convert to Image <convertToFile>
Then I compare Images <getActualImagePath> and <getExpectedImagePath> and <pageCount>

和步骤定义:

**Binding for Multiple steps is the below binding:**

第一次绑定(bind):

[Given(@"I get Inputs Folder and list of Files (.*) then (.*)")]
public void GivenIGetInputsFolderAndListOfFilesThen(string getInputFolder, string getInputTokens)
{
--logic--
}

第二次绑定(bind):

[Given(@"I get (.*)")]
public void GivenIGet(string getOutputDirectory)
{
--logic--
}

第二个绑定(bind)修改为:

Given I set OutputDirectory of Pdf <outputDirectory>

[Given]
public void Given_I_set_OutputDirectory_of_Pdf_P0(string p0)
{
--logic--
}

这个也没有帮助我。也尝试过 Regex 仍然无法解决问题。上述 2 个绑定(bind)存在歧义。它不仅在一个功能中,它也观察到其他功能文件。如何解决这个问题,使每一行都与一个 Binding 完全匹配?

最佳答案

正如@perfectionist 所指出的,您的问题出在您的正则表达式上。一个正在消耗两者的所有字符。试试这个:

Feature: ConversionUnencrypted Pdf-Pdf

@mytag
Scenario Outline: ConversionUnencrypted Pdf-Pdf

Given I get Inputs Folder and list of Files '<inputFolder>' then '<getInputTokens>'
Given I get '<outputDirectory>'
...

和步骤定义:

[Given(@"I get Inputs Folder and list of Files '([^']*)' then '([^']*)'")]
public void GivenIGetInputsFolderAndListOfFilesThen(string getInputFolder, string getInputTokens)
{
}

[Given(@"I get '([^']*)'")]
public void GivenIGet(string getOutputDirectory)
{
--logic--
}

仅当输入不包含 ' 时,此正则表达式才会匹配字符 so 将防止第二种方法在消耗输入和匹配更长的方法时过于贪婪。

作为一般规则,我更喜欢在场景中将字符串字符用单引号括起来,就像上面的那样,因为这样可以稍微更容易地缓解这样的问题

显然,只有当您输入 '<inputFolder>','<getInputTokens>' and <outputFolder> 时,以上内容才有效不包含任何 '人物。如果他们这样做,那么您可能需要更复杂的正则表达式

关于c# - 绑定(bind)中的 SpecFlow 歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com