微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby – 在不同环境下运行黄瓜测试

我正在使用Cucumber和Capybara进行自动化前端测试.

我有两个环境,我想运行我的测试.一个是临时环境,另一个是生产环境.

目前,我已将我的测试编写为直接访问分段.

visit('https://staging.somewhere.com')

我想重新使用生产中的测试(https://production.somewhere.com).

是否可以将URL存储在我的步骤定义中的变量中

visit(domain)

并使用从命令行调用的环境变量定义域?喜欢

$> bundle exec cucumber features DOMAIN=staging

如果我想将测试指向我的暂存环境,或者

$> bundle exec cucumber features DOMAIN=production

如果我想让它在生产中运行?

我该如何设置呢?我是Ruby的新手,我一直在论坛上搜索直接的信息,但找不到任何信息.如果我能提供更多信息,请告诉我.谢谢你的帮助!

解决方法

在项目的配置文件中,创建一个config.yml文件
---
staging:
    :url: https://staging.somewhere.com

production:
    :url: https://production.somewhere.com

然后yml文件中的冒号允许将散列键作为符号调用.

在support / env.rb文件中,添加以下内容

require 'yaml'    

ENV['TEST_ENV'] ||= 'staging'
project_root = File.expand_path('../..',__FILE__)
$BASE_URL = YAML.load_file(project_root + "/config/config.yml")[ENV['TEST_ENV']][:url]

除非您覆盖TEST_ENV,否则这将认为暂存环境.然后,从您的步骤或钩子,您可以致电:

visit($BASE_URL)

或者您可能需要:/

visit "#{$BASE_URL}"

这将允许您使用

bundle exec cucumber features TEST_ENV=production

原文地址:https://www.jb51.cc/ruby/264551.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐