如何解决在另一个场景之前使用标签调用特定场景?
如何将cucumber hooks翻译成(java script nodejs)如下语句:
在@tag2之前调用@tag1?
当我自动运行@tag2 时,@tag1 在@tag2 之前被调用。
@tag1
Scenario: populate cars
...
@tag2
Scenario: sell car
...
我想使用这个命令:/node_modules/.bin/cucumber.js --tags "@tag2"
在这种情况下,“Before”钩子应该刺激标签 tag1 在 tag2 之前运行。
这种情况下如何写Before hook?
Before('@tag2',function () {
...
}
第二个问题
等式。 @tag3 = @tag1 和 @tag2
运行时,命令只被称为 tag3: /node_modules/.bin/cucumber.js --tags "@tag3"
解决方法
您的问题可能有技术解决方案,但实际上有一个哲学解决方案,它也可以作为技术解决方案。
Cucumber 场景应该是独立的。每个场景在单独执行时都应该是一个完整的测试。在出售汽车之前,您需要“填充汽车”是有道理的。您应该创建新的 Given
步骤来模拟“填充汽车”场景中描述的行为,而不是从“销售汽车”场景中调用“填充汽车”场景。
由于您没有提供每个场景的步骤,我只能猜测它们可能是什么。销售汽车的场景可能类似于:
Scenario: sell car
Given a 1972 "Ford" "Pinto" is in stock # <-- this simulates the "populate cars" step
When ...
Then ...
如果您的场景需要不止一辆汽车,另一种方法是使用数据表:
Scenario: sell car
Given the following cars are in stock: # <-- this simulates the "populate cars scenario
| Year | Make | Model | Price |
| 1972 | Ford | Pinto | ... |
| 2020 | BMW | M3 | ... |
When ...
Then ...
Given
步骤的实现取决于您。此步骤可以导航真实用户界面或进行 Web 服务调用以填充汽车。这取决于您,并取决于您可以使用哪些 API 来定义您的黄瓜步骤。
https://cucumber.io/docs/cucumber/api/#running-a-subset-of-scenarios
将语言切换到 JS,您将获得所需的所有帮助。
对于这个例子,你会想要类似的东西
./node_modules/.bin/cucumber.js --tags "@tag1 and @tag2"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。