1

clojure maven プラグインを使用してプロジェクトをビルドしています。プロジェクトには、次のような内容のテスト、たとえばmytest.cljが含まれています。

(def ^:dynamic *server*
  (create-server "tcp://bla.bla:9999"))

(deftest blabla1...)
(deftest blabla2...)

mvn clojure:testを実行する と、ビルドが正常に実行されます。

しかし、mvn installを実行する と、テスト フェーズに到達すると、mytest.cljで宣言されたサーバーが起動します。その開始後、何も起こりません: clojure テスト スクリプトがフリーズしているようで、プロジェクトのビルドを続行できません (エラー メッセージなし): Maven がハングするだけです。ただし、既に述べたように、 mvn clojure:testは同じプロジェクトに対して正常に実行されます。

誰かがこの問題を解決する方法を知っていますか?

どんな助けでも大歓迎です。よろしくお願いします

ホレス

PS: 標準のmvn installを使用して clojure ソースをコンパイルおよびテストできます。これは、プロジェクトのパッケージがpom.xmlで「clojure」パッケージとして構成されているためです。その結果、clojure Maven プラグインは、コンパイル、テスト、およびテストコンパイルの Maven フェーズに自動的にバインドされます。

4

1 に答える 1

1

問題は、テストの実行時にサーバーを起動しているが、すべてが終了したときにそのサーバーをシャットダウンしていないことです。

フィクスチャを使用して、テストで開始したスレッド/エージェント/サーバーを確実に強制終了する必要があります。

Clojure: How To use-fixtures in Testing を参照してください。

于 2013-07-29T21:16:50.390 に答える