我有一个cuke场景,
Scenario: Hello World
Then do action one
Then do action two
Then do action three
Then do action four
Then do action five
但是,根据环境变量,我想跳过action three
和action four
。我知道我可以走这一步并做一个if-else检查,但它并不是很优雅。有没有更好的解决方案?谢谢:))
答案 0 :(得分:2)
你不能在小黄瓜做这件事,你也不想这样做!小黄瓜不是用于编程,也不是用于说明'如何'事情已经完成,而不是说明什么'事情是和为什么'他们已经完成了。
一般来说,当你发现自己想要在Gherkin(循环,条件等)中编程时,你想要做的是
在你的情况下,你可以通过
来做到这一点ssh example@192.168.1.37
和
When I act
Then ...
并使用Given中的状态设置允许条件行为在When
中e.g。
Given we are simple
When I act
Then ...
使用Cucumber是非常简单和高效的,而不是试图让它完全按照你的意愿行事。黄瓜不是一种通用的测试工具,您最好改变使用方式或使用其他工具。祝你好运......
答案 1 :(得分:1)
您可以创建两个方案并使用tags对其进行过滤:
@complete-scenarios-tag
Scenario: Complete Hello World
Then do action one
Then do action two
Then do action three
Then do action four
Then do action five
@simple-scenarios-tag
Scenario: Simple Hello World
Then do action one
Then do action two
Then do action five
然后你可以只运行简单的场景:
cucumber --tags @simple-scenarios-tag
答案 2 :(得分:1)
您可以在识别环境变量的步骤中包含代码。
Given(/^the evironment has whatever$/) do
if ENV['whatever'] == false
do.something
end
end
这只是一个例子。代码可以做任何你想做的事。