2013-07-25 24 views
1

我使用clojure maven插件来构建项目。该项目包含一个测试,让我们说mytest.clj,有类似下面的内容:clojure maven插件:当使用mvn clojure时,clojure测试成功:测试但不在测试阶段时使用mvn安装

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

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

如果我运行MVN的Clojure:测试,构建成功运行。

但如果我运行MVN安装,则达到了测试阶段的时候,服务器在mytest.clj开始申报。在那之后,没有更多的事情发生了:clojure测试脚本似乎被冻结,并且项目的构建不能继续(没有任何错误信息):Maven只是挂起。尽管如前所述,mvn clojure:测试成功运行同一个项目。

有人知道如何解决这个问题吗?

任何帮助将不胜感激。 THX提前 问候

贺拉斯

PS:我可以使用标准的MVN安装编译和测试Clojure的来源,因为我的项目的包装在POM配置为“Clojure的”一个.xml。它的结果是,clojure maven插件会自动将它自己绑定到编译,测试和测试编译的maven阶段。

回答

1

问题是,当测试运行时您正在启动服务器,但是当所有事情完成时您并未关闭该服务器。

你会想使用灯具来确保你杀死了测试中启动的任何线程/代理/服务器。

请参阅Clojure: How To use-fixtures in Testing