在我的测试中,我使用了类似这样的东西:
;; api.utils
(defn wrap-test-server [f]
(start-test-server)
(f)
(stop-test-server))
;; api.some-endpoint
(use-fixtures
:once
utils/wrap-test-server)但是,我必须在每个测试模块中复制夹具设置代码。
如何为所有测试设置一个全局fixture?
或者更好的是,提供一个“包”,这样api.*中的测试就可以用开始/停止夹具进行包装。
请注意,在这种情况下,我并不关心包装的“级别”。以下两种方法都可以工作:
;; Wrap around all the tests in the package:
(start-test-server)
(test-1)
...
(test-n)
(stop-test-server)
;; Wrap every test in the package:
(start-test-server)
(test-1)
(stop-test-server)
...
(start-test-server)
(test-n)
(stop-test-server)发布于 2016-02-15 01:29:52
您绝对可以将该函数拉到另一个名称空间中,并以这种方式重用它,并执行以下操作:
(defn one-time-setup [f]
(start-test-server)
(f)
(stop-test-server))
(use-fixtures :once one-time-setup)这个博客post很好地总结了这一点。在帖子中:
:oncefixture -在运行任何测试之前将被调用的方法,它将被传递一个要调用的函数,该函数将调用所有测试。
https://stackoverflow.com/questions/35393649
复制相似问题