簡體   English   中英

我可以使用機架測試進行部署測試嗎?

[英]Can I use rack-test for deployment tests?

我已經在Sinatra構建了一個簡單的api,目的是使用Docker設置部署管道。 我處於一個可以輕松地將Sinatra其他東西的階段,目前有一個原因可以這么做。

我曾經使用Express寫過一個api,重用測試來測試部署很簡單:

# Testing the code
chai.request(app)
  .get('/')

# Testing a deployment
chai.request('http://localhost:8080')
  .get('/')

來自以下示例的示例: https : //github.com/chaijs/chai-http#integration-testing

現在,我想知道是否可以通過rack-testSinatra完成相同的任務。 只是發送一個URL(而不是應用程序)會崩潰。 那么有沒有簡單的方法可以做到這一點? 我想我可以在rack-test之上編寫一個測試框架,但是我不確定它是否值得,即使我比Javascript更喜歡RubyExpress而不是Sinatra

我意識到我應該能夠編寫一個機架應用程序,將所有請求轉發到我要針對其運行部署測試的環境。 因此,我去了Google,發現了一個可以做到這一點的寶石: rack-proxy

這是編寫簡單的機架應用程序的方法,該應用程序將請求重定向到您的服務器:

require 'rack/proxy'

class Foo < Rack::Proxy
  def rewrite_env(env)
    env["HTTP_HOST"] = "api.example.com"
    env
  end
end

然后我對Foo.new進行了測試。新測試成功了。 我檢查了該環境的日志,並且可以確認我的測試實際上是針對該環境運行的。

Foo可能不是這種代理的最佳名稱,並且您可能不希望對主機名進行硬編碼,但是我敢肯定,如果需要的話,您可以弄清楚如何在您的項目中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM