我正在尝试使用RSpec来功能测试我的REST apis。
我喜欢它的工作方式是使用CI构建来构建我的应用程序并将其部署到云中的某个测试服务器,然后开始自动化功能测试。但为了正确地做到这一点,我需要能够传入部署应用程序的基本URL /域。它不会是一样的。
到目前为止我发现的所有东西都让RSpec看起来不能做到这一点。如果我不能在命令行上传递参数,还有另一种方法吗?或者RSpec不是这个的正确选择?
答案 0 :(得分:13)
一种方法是绕过对rspec的调用,接受命令行参数,然后在代码中启动rspec。如果您不想为此编写自己的二进制文件,那么rake也能够做到这一点。
Look here了解如何从代码运行rspec。
另一种方法是在调用测试时设置ENV变量,最好在规范中将其设置为可选。
$> SPEC_URL=http://anotherhost:666 rspec
代码:
url = ENV['SPEC_URL'] || "http://localhost:4000"
我建议使用方法二,因为在我看来这是更简洁的方法。