设置一个使用Clojure对纯Java库进行单元测试的环境
我必须编写一个纯Java库。但我想使用Clojure对其进行单元测试 所以我想建立这样的东西:两个项目存储库。Java代码本身,以及第二个Leiningen项目,该项目包括该库并对其运行单元测试 我做TDD,所以这是一个相当紧凑的迭代(即编写测试,编写代码以通过测试)。我可以在Emacs中同时打开两个项目的代码,但我想知道如何自动连接 例如,理想情况下,每当我进行“lein测试”时,它都会获取最新的Java代码,编译它(如果没有编译),将它拉到Clojure项目中,并在测试中使用它 我怎样才能做到这一点?我目前有一个Lein project.clj文件,它引用了本地Maven存储库中的Java库。但我不确定Lein是否会从Maven自动更新,除非版本号发生变化,我不想每2或3分钟更新一次代码库的版本号。(至少,肯定不是手动操作。)设置一个使用Clojure对纯Java库进行单元测试的环境,java,maven,unit-testing,clojure,build-automation,Java,Maven,Unit Testing,Clojure,Build Automation,我必须编写一个纯Java库。但我想使用Clojure对其进行单元测试 所以我想建立这样的东西:两个项目存储库。Java代码本身,以及第二个Leiningen项目,该项目包括该库并对其运行单元测试 我做TDD,所以这是一个相当紧凑的迭代(即编写测试,编写代码以通过测试)。我可以在Emacs中同时打开两个项目的代码,但我想知道如何自动连接 例如,理想情况下,每当我进行“lein测试”时,它都会获取最新的Java代码,编译它(如果没有编译),将它拉到Clojure项目中,并在测试中使用它 我怎样才能做
有人对此有经验吗?您可以通过简单的java互操作来实现这一点。您不应该对本地文件(java或clojure)使用maven,而应该只对外部库使用maven 以下是一个示例: Java代码: Clojure代码: 要运行: 因此clojure编译器通过
project.clj
:java-source-paths ["/home/alan/xpr/src"]
当您运行lein test
时,它会将java源文件与已编译的java*.class
文件进行比较,并在必要时重新编译java源文件。如果我们做出改变
“你好”->“你好,又来了!”在java源代码中,我们得到:
> lein test
(:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability)
Compiling 1 source files to /home/alan/clj/target/base+system+user+dev+test+test/classes
begin
Hello, again!
end
lein test user
Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
因此,lein检测到源文件更改,并重新编译了java源文件
使现代化 我使用了Clojure/Java混合源代码。
只要克隆它,你就可以开始比赛了 您可以通过简单的java互操作来实现这一点。您不应该对本地文件(java或clojure)使用maven,而应该只对外部库使用maven 以下是一个示例: Java代码: Clojure代码: 要运行: 因此clojure编译器通过
project.clj
:java-source-paths ["/home/alan/xpr/src"]
当您运行lein test
时,它会将java源文件与已编译的java*.class
文件进行比较,并在必要时重新编译java源文件。如果我们做出改变
“你好”->“你好,又来了!”在java源代码中,我们得到:
> lein test
(:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability)
Compiling 1 source files to /home/alan/clj/target/base+system+user+dev+test+test/classes
begin
Hello, again!
end
lein test user
Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
因此,lein检测到源文件更改,并重新编译了java源文件
使现代化 我使用了Clojure/Java混合源代码。 只要克隆它,你就可以开始比赛了
> lein test
(:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability)
Compiling 1 source files to /home/alan/clj/target/base+system+user+dev+test+test/classes
begin
Hello, again!
end
lein test user
Ran 0 tests containing 0 assertions.
0 failures, 0 errors.