问题标签 [feature-file]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
434 浏览

c# - 版本冲突 - SpecFlow Visual Studio 扩展尝试使用 SpecFlow 代码隐藏生成器 1.9,但项目“WpfApp3”引用 SpecFlow 3.1

我在我的 Visual Studio 2017 中安装了最新版本的 Specflow(3.1.97)、Nunit (3.1.97)、MS Build Generator(3.1.97),我创建了一个功能文件,但它的类文件抛出错误。

我收到以下错误:

版本冲突 - SpecFlow Visual Studio 扩展尝试使用 SpecFlow 代码隐藏生成器 1.9,但项目“WpfApp3”引用 SpecFlow 3.1。

我们建议迁移到 MSBuild 代码隐藏生成来解决此问题。

有关更多信息,请参阅https://specflow.org/documentation/Generate-Tests-from-MsBuild/

任何帮助将非常感激。

0 投票
1 回答
364 浏览

amazon-s3 - 如何使用 postdata preSigned Url 调用 Amazon S3 存储桶以使用空手道上传文件

我有一个 Amazon S3 的 postdata 预签名 URL。我想在空手道功能文件中使用它来上传文件(比如:pdf)

这是我需要使用空手道 POST 请求执行的示例 Curl 请求

我从服务器收到响应(具有 preSignedUrl)并在功能文件中使用以下代码

我试过了

但我从 Amazon S3 收到一个验证 XML 错误,显示不正确的字段值

我希望 204 No Content 和文件上传到 S3 存储桶

0 投票
1 回答
286 浏览

amazon-s3 - 如何使用预签名 URL 以相同的顺序使用表单字段来上传 Amazon S3 文件

我有一个 Amazon S3 的 postdata 预签名 URL。我想在空手道功能文件中使用它来上传文件(比如:pdf)

这是我需要使用空手道 POST 请求执行的示例 Curl 请求

我从服务器收到响应(具有 preSignedUrl)并在功能文件中使用以下代码

我试过了

我看到空手道日志的请求格式为:18:29:08.560 [ForkJoinPool-1-worker-3] DEBUG com.intuit.karate - request:

我看到表单数据甚至没有在实际请求中传递但是我从 Amazon S3 收到验证 XML 错误,因为字段值的顺序不正确

我希望 204 No Content 和文件上传到 S3 存储桶

0 投票
0 回答
348 浏览

cucumber - 在 Jenkins Run 期间忽略某些黄瓜标签

我有几个功能文件,其中包括:


我想知道如何使用@tag1 运行场景,而不是也有@tag2 的场景(在这种情况下运行场景功能文件)

提前致谢!

0 投票
1 回答
3834 浏览

cucumber - 无法解析黄瓜中的功能文件

io.cucumber.core.gherkin.FeatureParserException:无法解析资源:file:///D:/NodeApiTesting/APITestingNode/src/test/resources/functionalTests/End2End_Test.feature 在io.cucumber.core.gherkin.vintage。 GherkinVintageFeatureParser.parseGherkin5(GherkinVintageFeatureParser.java:40) 在 io.cucumber.core.gherkin.vintage.GherkinVintageFeatureParser.parse(GherkinVintageFeatureParser.java:58) 在 io.cucumber.core.feature.FeatureParser.parseResource(FeatureParser.java:44)在 io.cucumber.core.runtime.FeaturePathFeatureSupplier.lambda$new$0(FeaturePathFeatureSupplier.java:39) 在 java.util.function.BiFunction.lambda$andThen$0(Unknown Source) 在 io.cucumber.core.resource.ResourceScanner。在 io.cucumber.core.resource.PathScanner$ResourceFileVisitor.visitFile(PathScanner.java:67) 在 io.cucumber.core 的 lambda$processResource$2(ResourceScanner.java:126)。resource.PathScanner$ResourceFileVisitor.visitFile(PathScanner.java:52) at java.nio.file.Files.walkFileTree(Unknown Source) at java.nio.file.Files.walkFileTree(Unknown Source) at io.cucumber.core.resource .PathScanner.findResourcesForPath(PathScanner.java:46) at io.cucumber.core.resource.PathScanner.findResourcesForUri(PathScanner.java:26) at io.cucumber.core.resource.ResourceScanner.findResourcesForUri(ResourceScanner.java:109) at io.cucumber.core.resource.ResourceScanner.scanForResourcesUri(ResourceScanner.java:86) 在 io.cucumber.core.runtime.FeaturePathFeatureSupplier.loadFeatures(FeaturePathFeatureSupplier.java:62) 在 io.cucumber.core.runtime.FeaturePathFeatureSupplier.get( FeaturePathFeatureSupplier.java:46) 在 io.cucumber.junit.Cucumber.(Cucumber.java:156) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect。NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java: 104) 在 org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 org.junit.internal.builders.AllDefaultPossibilitiesBuilder .runnerForClass(AllDefaultPossibilitiesBuilder.java:37) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70) 在 org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28) 在 org. junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19) 在 org.eclipse.jdt.internal.junit4.runner。JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests( JUnit4TestLoader.java:49) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 770) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210) :io.cucumber.core.gherkin.vintage.internal.gherkin.ParserException$CompositeParserException:解析器错误:(1:1):预期:#EOF,#Language,#TagLine,#FeatureLine,#Comment,#Empty,得到'场景大纲:用户生成授权令牌'(2:2):预期:#EOF、#Language、#TagLine、#FeatureLine、#Comment、#Empty,得到“鉴于我是授权用户”(4:1):预期:# EOF,#Language,#TagLine,#FeatureLine,#Comment,#Empty,得到“场景大纲:授权用户可以添加和删除电话”(5:2):预期:#EOF,#Language,#TagLine,# FeatureLine,#Comment,#Empty,得到“给定电话列表可用”(6:2):预期:#EOF、#Language、#TagLine、#FeatureLine、#Comment、#Empty,得到“当我添加一个电话存储'(7:2):预期:#EOF,#Language,#TagLine,#FeatureLine,#Comment,#Empty,得到'然后电话被添加'(8:2):预期:#EOF,#语言、#TagLine、#FeatureLine、#Comment、#Empty,得到“当我在商店中更新手机时”(9:2):预期:#EOF、#Language、#TagLine、#FeatureLine、#Comment,#Empty,得到“然后手机更新”(10:2):预期:#EOF、#Language、#TagLine、#FeatureLine、#Comment、#Empty,得到“当我从商店中取出手机时'(11:2):预期:#EOF、#Language、#TagLine、#FeatureLine、#Comment、#Empty,得到“然后书被删除”(12:2):预期:#EOF、#Language、# TagLine,#FeatureLine,#Comment,#Empty,在 io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.addError(Parser.java:152) 在 io.cucumber 获得“当我阅读我的手机详细信息时” .core.gherkin.vintage.internal.gherkin.Parser.matchTokenAt_0(Parser.java:491) 在 io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.matchToken(Parser.java:337) 在 io.cucumber .core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:137) 在 io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:118) 在 io.cucumber.core.gherkin.vintage.internal.gherkin.Parser.parse(Parser.java:114) 在 io.cucumber.core.gherkin.vintage.GherkinVintageFeatureParser.parseGherkin5(GherkinVintageFeatureParser.java:29) .. . 34 更多

我的功能文件如下

End2End_Test.feature

我的 runner.java 文件如下

TestRunner.java

0 投票
2 回答
8059 浏览

java - 如何在 Cucumber 特征文件中传递具有不同数量参数的多个示例

我的功能文件中的一个步骤需要两个参数,例如多个系统的登录名和密码,它们单独工作正常,但是有什么方法可以为各个步骤传递多个示例?功能文件中的第一步是调用 POST API 并根据参数获取响应。场景大纲:验证搜索结果给定我在 Header 中使用以下功能文件正文有效负载设置了授权令牌

第二步是:

用户输入"<Username>", "<Password>"并点击登录按钮

您能否分享一下是否有任何方法可以实现这一目标?我可以像上面提到的那样在一个场景大纲中传递多个示例吗?我需要步骤 1 的一些响应来执行步骤 2,所以我不能分成两种情况。谢谢你。

0 投票
1 回答
44 浏览

excel - SpecFlow+ Excel 以编程方式生成特征文件

给定一个 Excel 文件,如何以编程方式生成特征文件?

使用 Specflow 2.3.2 和相应的 Excel 插件和 dotNet 框架(不是 dotNetCore)

0 投票
1 回答
502 浏览

python - 如何在示例中使用 pytest bdd 为场景语句传递相同参数的不同值

这是我的功能文件

截至目前,我不能在相同的步骤中使用 app2 值,我必须app_installation使用app1参数进行复制

有没有一种方法可以让我在示例中使用可以映射到的任何参数app

0 投票
0 回答
118 浏览

rest - 在特征文件黄瓜中传递响应数据

我有 2 个 API 一个 API 将提供 5 位代码 其他 API 将验证该 5 位代码

目前我正在为这两个 API 编写特性文件为了在 cucumber 中测试这些 API,我已经为这两个 API 编写了特性文件。

那么如何在第二个 API 的功能文件中传递从第一个 API 收到的响应,有没有办法做到这一点?

0 投票
0 回答
13 浏览

karate -

我正在使用下面的 XML,我需要在 XML 中为下面的标签设置 10 次值。

  1. 投票号码

而且我还想用 10 个更新的新 PolNumber 打印新的 XML。我应该在这个 SOAP XML 的特性文件中写什么?

我已经写了下面的代码,但是新更新的值没有被打印出来。

  • def Info = read('data.xml')
  • 设置信息/策略 [@CarrierPartyID='Party_Carrier']/PolNumber = 'P123456'
  • 打印信息

XML:


如何使 for 循环在特定值处停止

我正在创建一个 NBA 总决赛模拟器,它将预测 NBA 总决赛的获胜者和比赛的数量。这是我当前的代码:

这是它返回的内容:

问题是,我希望 for 循环在团队达到 4 胜时结束。我怎样才能做到这一点?