什么是在Clojure中构建集成和单元测试的典型方式?到目前为止,我有一个遵循我的src/目录结构的test/文件夹。但我想将它们分成单元测试和集成测试。是否有推荐的策略?在测试中使用注释?子文件夹test/unit和test/integration?环境变量?注意:如果有影响,我使用boot而不是leiningen。
(tst/defspec ^:slow round-trip-bytes 9999
(prop/for-all [orig gen/bytes]
(let [string-b64 (b64/encode-bytes->str orig)
result (b64/decode-str->bytes string-b64) ]
(assert (every? b64/base64-chars (seq string-b64)))
(assert (types/byte-array? result))
(= (seq orig) (seq result)))))
然后在你的 project.clj
文件中(不是 boot,我知道),指定以下内容:
:test-selectors { :default (complement :slow)
:slow :slow }
当你输入lein test
时,标记为^:slow
的测试将被跳过,而当你输入lein test :all
时,所有测试(包括“slow”测试)都将运行。
请注意,关键字:slow
并没有什么特别之处。您可以替换任何您想要的关键字,例如:integration
。
我没有经常使用boot
,但我认为类似的技术也是可用的。