#unit-testing #clojure #leiningen
#модульное тестирование #clojure #leiningen
Вопрос:
Я заметил, что в leiningen есть отличный модульный тестовый плагин — вы просто вводите «lein test» 🙂 . Однако неясно, как он «находит» тестовые файлы. Есть ли конкретная папка, в которую мне нужно их поместить? Или, если он просто сканирует пространства имен (как сказано в документах lein), как мне узнать, какое пространство имен мне нужно использовать, чтобы leiningen мог видеть мои тесты?
Я думал о том, чтобы просто создать один тестовый файл с именем tests.clj. Образец шаблона действительно был бы хорош.
Ответ №1:
На верхнем уровне создайте каталог test /, а затем создайте некоторый файл, скажем, mytests.clj. Вот пример (предостережение: я на самом деле не компилировал это, а упростил существующий тест):
(ns mytests
(:use clojure.test))
(defn myfixture [block]
(do
(println "before test")
(block)
(println "after test")))
(use-fixtures :each myfixture)
(deftest mytest
(is (= 2 ( 1 1))))
Комментарии:
1. когда leiningen создает проект, он создает каталог тестов, в котором он должен быть уже с одним неудачным тестом.
2. Сбой этого кода «Вызван: java.io.FileNotFoundException: не удалось найти mytests__init.class или mytests.clj на пути к классу: » … Связано ли это с пространством имен?
Ответ №2:
для lein версии 2.7.1: {это из Linux Mint с Leiningen 2.7.1 на Java 1.8.0_121 Java HotSpot (TM) 64-разрядная серверная виртуальная машина } Я хотел больше заниматься тестированием и теперь получил эти новые знания…
lein new <projname>
cd <projname>
tree -d
cat test/<projname>/core_test.clj
lein test
-> observe failing test template even on blank new project
затем вы могли бы добавить: ( print "start adding test"
)
и увидеть свои усилия…