java - JUnit 和 Clojure 单元测试

标签 java unit-testing testing clojure junit

我正在创建一个包含 Clojure 和 Java 代码的库,并且希望能够在整个代码库中运行单个测试 JUnit 套件。看起来这应该是可能的,因为它们都在 JVM 上运行并且有很好的 Clojure/Java 互操作性。

但是,目前 Clojure 代码似乎更倾向于使用“(run-all-tests)”和 friend 通过 clojure.test API 完成单元测试。

有没有一种好方法可以将这些 Clojure 测试包装在某种包装器中,以便可以从 JUnit 自动调用它们?

(当我说自动时,我的意思是无需诉诸编写 JUnit 测试用例的手动解决方案来单独包装和调用每个 Clojure 测试用例:-))

最佳答案

最简单的做法是从单个 JUnit 测试调用 run-all-tests。您可以捕获输出并查看指示通过/失败/错误计数的最后一行。如果您看到失败或错误,您可以使 JUnit 测试失败。

但是,如果您想与每个 Clojure 测试进行交互,则必须实现与 clojure.test 中的功能类似的功能。也就是说,对于每个命名空间中的每个值,查找存储在 :test 元数据值中的函数。该值就是您的测试函数。

test.clj 的第 661-686 行给出关于如何在 Clojure 中存储和稍后运行测试的一个很好的概要。

关于java - JUnit 和 Clojure 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845595/

相关文章:

python - "Empty test suite"通过使用 Pycharm 运行 Django 测试(如果从 shell 启动则发现测试)

testing - 是否有进行和不进行测试的著名软件产品的列表?

java - Java 的免费/开源测试生成器?

java - 测试抛出 NullPointerException 而不是 RandomCustomException,但仅在某些环境中

java - 类的 "direct superinterface"是什么意思?

java - Envers 查询对 _MOD 列使用错误的列名称

java - JTable 的问题,我可以添加到表中,但看不到所有行

java - Spring数据的增量mapreduce

ios - 如何使用 Instrument 运行 Xcode UnitTest

c# - csharp 中的单元测试异步任务