0

我希望在 serverspec 中为 nginx 重写调用创建一个测试,如下所示(它将对 ^/folder/file.json URL 的请求重定向到 @redirect_url 变量):

rewrite ^/folder/file.json <%= @redirect_url %> permanent;

对于我正在更新的厨师食谱。不幸的是,从我在互联网上找到的信息来看,它要么强调了我对 nginx 和 serverspec 术语完全缺乏理解,要么就是你无法做到这一点。有没有人可以帮忙?

4

2 回答 2

3

您可以使用 Ruby 的 Net::HTTP 直接检查响应代码

describe Net::HTTP.get_response(URI('http://localhost:port/path')) do
  its(:code) { should eq '301' }
  its(:msg) { should match 'Moved Permanently' }
end
于 2017-07-21T20:47:28.877 回答
1

使用 curl 命令的重定向服务器规范是这样的:

redirect_url = "..."
describe command("curl -I http://example.com/folder/file.json") do
  its(:stdout) { should match(%r|HTTP/1.1 301 Moved Permanently|) }
  its(:stdout) { should match(%r|Location: #{Regexp.escape(redirect_url)}|) }
end
于 2017-07-21T15:25:41.677 回答