Как мне добавить модульные тесты в проект Leiningen?

#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" )
и увидеть свои усилия…