Ruby 在命令行上将参数传递给Rspec test

Ruby 在命令行上将参数传递给Rspec test,ruby,rest,rspec,functional-testing,Ruby,Rest,Rspec,Functional Testing,我正在尝试使用RSpec对我的restapi进行功能测试 我希望它的工作方式是使用CI构建来构建我的应用程序并将其部署到云中的某个测试服务器,然后让它启动自动功能测试。但为了正确地做到这一点,我需要能够传入应用程序部署位置的基本url/域。这将是不一样的 到目前为止,我所发现的一切都让人觉得RSpec做不到这一点。如果我不能在命令行上传入参数,还有其他方法吗?还是RSpec不是这方面的正确选择 一种方法是使用接受命令行参数的东西绕过对rspec的调用,然后在代码中启动rspec。如果您不想为此编

我正在尝试使用RSpec对我的restapi进行功能测试

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


到目前为止,我所发现的一切都让人觉得RSpec做不到这一点。如果我不能在命令行上传入参数,还有其他方法吗?还是RSpec不是这方面的正确选择

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

了解如何从代码运行rspec

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

$>规范URL=http://anotherhost:666 rspec

代码:

url=ENV['SPEC_url']||”http://localhost:4000“


我建议使用方法二,因为在我看来,这是一种更干净、更简单的方法。

为什么需要这种方法?我想我已经描述了这种情况。我想要一个jenkins构建,可以构建应用程序,运行单元测试,然后将构建部署到临时云服务器(新的ec2实例或其他可以降低成本的东西,将在测试完成后关闭),然后运行测试。因为这将是一个新的服务器,我不知道运行测试的url。这不是问题的答案,但是你试过了吗?不知道他们是否有办法集成这些参数您描述了这个场景,但您没有解释为什么“为了正确地做到这一点,我需要能够传入应用部署位置的基本url/域”,谢谢。我以为我已经提到了,但没有。我以前遇到过环境变量方法。这对我来说似乎是一种恶作剧,但最终可能是唯一的办法。我将使用rake进行检查,看看它是如何工作的。如果您使用TeamCity,请编写:
url=ENV['SPEC\u url']。to_.empty?环境['SPEC_URL']:“http://localhost:4000“
ENV['SPEC_URL']不仅可以是nil,还可以是空字符串(对于TeamCity)。