我一直在寻找这个答案很长一段时间,我还没有弄明白。
说我有一个测试环境和一个生产环境。我创建了calabash场景,无论我是在test还是prod上运行,都需要有所不同。我的所有场景都是用 /feature/xxx.feature
编写的问题在于,当我运行测试时,将运行所有 *。feature 。因此,我创建了一个环境变量,我根据我想要运行测试的环境进行更改。
如何定位正确的.feature文件?如何告诉Calabash:当环境变量设置为"生产"请只运行 / feature / prodution / .feature 文件?*
非常感谢你的帮助!
答案 0 :(得分:4)
这真是一个黄瓜问题。
我建议使用标签。以下示例适用于iOS,但原则适用于Android。
https://github.com/cucumber/cucumber/wiki/Tags
您可以在Calabash iOS Smoke Test App.
中查看我们如何使用代码# Run the animation tests
$ bundle exec cucumber -t @animations
# Run the backdoor tests
$ bundle exec cucumber -t @backdoor
您可以将标签与黄瓜配置文件结合使用,以获得更高级的行为。
# Run the backdoor tests in the production environment
$ bundle exec -p production -t @backdoor
答案 1 :(得分:1)
您可以使用此命令定位特定功能。
bundler exec calabash-android run <apk>.apk <feature folder>/<feature name to execute>.feature
例如:
bundler exec calabash-android run <apk>.apk feature/Home.feature
您也可以使用带有功能
的标签 bundler exec calabash-android run <apk>.apk <feature folder>/<feature to execure>.feature --tags @<tag name>
例如:
bundler exec calabash-android run <apk>.apk feature/Home.feature --tags @test
答案 2 :(得分:0)
假设您有homepage.feature并想要运行整个功能文件
运行整个功能文件:calabash-android运行apkname.apk功能/ homepage.feature
运行特定测试:calabash-android运行apkname.apk功能/ homepage.feature --tags @smoke