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 阶段 compile、test 和 test-compile。

4

1 回答 1

1

问题是您在运行测试时正在启动服务器,但在一切完成后您并没有关闭该服务器。

您将需要使用固定装置来确保您正在杀死您在测试中启动的任何线程/代理/服务器。

请参阅Clojure:如何在测试中使用夹具

于 2013-07-29T21:16:50.390 回答