Open sirmspencer opened 1 year ago
Use the hooks plugin, this is the kind of thing it's there for.
I think we can convert this to a documentation issue—we've decided against adding global hooks, here's how we suggest using hooks in place of global fixtures, here's an example, etc.
In theory, you wouldn't need to use hooks at all, you could have a test namespace that declares a var with delay
.
(def test-db (delay (let [db-params {:connection-uri "sqlite:////memory"}]
;steps to set up database
db-params)))
;In a test namespace:
(deftest some-db-test
(testing insert-something
(jdbc/insert! @test-db ,,,)))
It might also be good to document this pattern in conjunction with our forthcoming parallel execution support. If namespaces are creating things that should only be accessed by one thread at a time, it could cause issues.
Here is a good write up of the problem https://stackoverflow.com/questions/43585325/clojure-test-global-fixtures.
TLDR is that things like connecting to a DB are slow and we don't want to do it for every namespace.
An alternative tool, circleci.test has added support for this. https://github.com/circleci/circleci.test#global-fixtures
Is there any plan to add something like this for koacha?