2017-02-06 3 views
3

私は開発環境とテスト環境用に別々のdatabase-urlを設定しました。これは、REPLとコマンドラインのlein testからwebappを実行するときにうまく動作します。ここに私のprofiles.cljです:テストを実行中にemacsサイダー(clojureモード)を使用してテスト環境変数を使用するにはどうすればよいですか?

{:profiles/dev {:env {:database-url "wiki"}} 
:profiles/test {:env {:database-url "wiki-test"}}} 

、右のデータベースインスタンスの証拠がヒットしている(私はCouchDBのを使用しています):

;; Running the site from the REPL: 
[info] [<0.12149.0>] 127.0.0.1 - - GET /wiki/home-page 200 
[info] [<0.10353.0>] 127.0.0.1 - - GET /wiki/about 200 

;; Running lein test: 
[info] [<0.12026.0>] 127.0.0.1 - - GET /wiki-test/welcome 404 
[error] [<0.12933.0>] Could not open file /usr/local/var/lib/couchdb/wiki-test.c 

しかし、私はEmacsでサイダーを経由してテストを実行するとき、それはのdevの環境を使用していますデータベースインスタンスが間違っています。

これを修正するにはどうすればよいですか?

答えて

0

これは、with-redefsを試してみることをお勧めします。このような

何か:dbは、あなたのテストであなたのデシベルハンドルをバインドするシンボルです

(with-redefs [db (get-my-test-db)] 
    (run-my-tests) 

この記事は参考にする必要があります: Isolating External Dependencies in Clojure

+0

おかげで、私はそれがどのように機能するかを見ることができると思いますが、それは右のテスト環境を使用していないだろうか?代わりに、Ciderにデフォルトでテスト環境を使用させる方法がありますか? –

関連する問題