在命令行上将参数传递给Rspec测试

时间:2014-09-22 20:32:34

标签: ruby rest rspec functional-testing

我正在尝试使用RSpec来功能测试我的REST apis。

我喜欢它的工作方式是使用CI构建来构建我的应用程序并将其部署到云中的某个测试服务器,然后开始自动化功能测试。但为了正确地做到这一点,我需要能够传入部署应用程序的基本URL /域。它不会是一样的。

到目前为止我发现的所有东西都让RSpec看起来不能做到这一点。如果我不能在命令行上传递参数,还有另一种方法吗?或者RSpec不是这个的正确选择?

1 个答案:

答案 0 :(得分:13)

一种方法是绕过对rspec的调用,接受命令行参数,然后在代码中启动rspec。如果您不想为此编写自己的二进制文件,那么rake也能够做到这一点。

Look here了解如何从代码运行rspec。

另一种方法是在调用测试时设置ENV变量,最好在规范中将其设置为可选。

$> SPEC_URL=http://anotherhost:666 rspec

代码:

url = ENV['SPEC_URL'] || "http://localhost:4000"

我建议使用方法二,因为在我看来这是更简洁的方法。