GLe*_*Lee 5 unit-testing clojure clojure-testing
使用 clojure.test,运行时lein test,默认设置仅打印断言数量,例如“运行了 12 个包含 19 个断言的测试”、失败测试的详细信息以及测试的命名空间。我还想要成功测试的输出,这样我就可以看到实际运行了哪些测试。像 JS 中的 Mocha 这样的框架默认就有这种行为。
例如,如果以下测试通过:
(deftest aTest
(testing "Simple test"
(is (= 1 1))))
Run Code Online (Sandbox Code Playgroud)
我想要一个类似的输出(格式是任意的):
Testing <namespace>
Passed: aTest -> Simple test
Run Code Online (Sandbox Code Playgroud)
理想情况下,通过的测试也应该有颜色编码。
我查看了一些库,包括 lein-test-refresh 和 humane-test-output,但没有看到我需要的东西。另一个选项看起来像是重写 clojure.test 中的报告函数,但我想如果可能的话避免这种情况。
我想你必须自己写。如果您想了解如何利用现有的deftest自定义宏的示例,这里是Tupelo 库中的一个示例,它根据行号自动为 deftest 组选择一个“名称”:
(defmacro dotest [& body]
(let [test-name-sym (symbol (str "dotest-line-" (:line (meta &form))))]
`(clojure.test/deftest ~test-name-sym ~@body)))
(dotest
(is (= 5 (+ 2 3)))) ; works!
Run Code Online (Sandbox Code Playgroud)
您只需添加 aprintln即可,瞧!
| 归档时间: |
|
| 查看次数: |
2004 次 |
| 最近记录: |