2017-04-13 14 views
1

私はsinatraベースのWebアプリケーションを開発しており、展開前にすべてが動作していることをテストで確認しています。テストフレームワークとして、私はminitest :: specsとcapybaraをwebkitで使用します。CapybaraアクセプタンステストのベースURLを変更する

私の問題は、展開した後、私のアプリケーションは、このようなベースURLで実行されていることである:

http://cool.server.net/to-the-application/ 

しかし、テストのカピバラの間には、/ないのto-the-application/へのパスでクリーンなベースURLを前提としています。これは、リンクやアクション内にベースURLを設定することを忘れることに関連するバグを見つけるためにテストすることはできません。

乾燥試験の場合、私はChanging the base URL for Rails 3 developmentに続き、config.ruを修正しましたが、私はカピバラに別のベースを使用させる方法が見つかりませんでした。

これを解決する方法はありますか?

+0

私は、サーバーURLのルートに存在しないかのようにアプリケーションのテストを変更することに興味があります。質問を編集して(うまくいけば)もっと明確に反映してください... – Jan

答えて

1

rack_testドライバを使用している場合、ホスト名は完全に無視されるため、変更することは何も行いません。別のドライバを使用している場合、あなたはcool.server.netは、一般的にカピバラがテストされているアプリをバインドしthatsのため、127.0.0.1に解決する必要があるだろうということ

Capybara.app_host = "http://cool.server.net" 

注意を指定することができます。

更新:これについて考えた後、私はあなたが望むものであるかどうかはわかりません。あなたが望むものが/to-the-applicationの下にあなたのアプリをマウントする場合はCapybara.appに割り当てる独自のアプリケーションオブジェクトを作成する必要があります - キャピバラが現在どのようにアプリケーションをマウントするかについてはhttps://github.com/teamcapybara/capybara/blob/2.13_stable/lib/capybara/rails.rb#L4を参照してください。

+0

答えをありがとう、私はカピバラのアプリオブジェクトに掘り下げます。私は誰か他の人がそれをして、それについて話すために戻って来たと思っていた... 8) – Jan

関連する問題