tutorial lein instalar code bridal clojure leiningen

lein - instalar clojure



Ejecutar pruebas de Clojure Repl y Leiningen (2)

En su ejemplo anterior, la respuesta está en el espacio de nombres incorrecto. Puede funcionar mejor si cambia el repl al espacio de nombres core_test . y luego ejecutar (run-tests) .

(in-ns ''first-project.core-test) (run-tests)

Otra forma divertida de desarrollar pruebas es simplemente ejecutarlas desde el REPL hasta que funcionen, porque las pruebas son funciones normales con algunos metadatos adicionales.

(in-ns ''first-project.core-test) (my-test)

Recuerde que debe cargar el archivo además de llamar in-ns Digamos que su archivo de prueba es tests/first_project/core_test.clj , luego deberá llamar

(load "tests/first_project/core_test") (in-ns ''first-project.core-test) (my-test)

Tenga en cuenta que _ en el sistema de archivos se convierte en - en el espacio de nombres y / convierte . .

Como novato en Clojure, utilicé Leiningen para crear un proyecto de muestra con

lein new app first-project

que me dio este directorio

. ├── doc │   └── intro.md ├── LICENSE ├── project.clj ├── README.md ├── resources ├── src │   └── first_project │   └── core.clj ├── target │   └── repl │   ├── classes │   └── stale │   └── extract-native.dependencies └── test └── first_project └── core_test.clj

Sin modificar ningún archivo, puedo lanzar exitosamente la única prueba fallida con

lein test ... Ran 1 tests containing 1 assertions. 1 failures, 0 errors. Tests failed.

Pero no puedo hacer lo mismo desde el REPL usando pruebas de ejecución

lein repl first-project.core=> (use ''clojure.test) nil first-project.core=> (run-tests) Testing first-project.core Ran 0 tests containing 0 assertions. 0 failures, 0 errors. {:type :summary, :pass 0, :test 0, :error 0, :fail 0}

Lo intenté (pero no funciona)

(require ''first-project.core-test)


Comience un REPL con lein repl , luego:

(require ''[clojure.test :refer [run-tests]]) (require ''your-ns.example-test) (run-tests ''your-ns.example-test)

Prefiero quedarme en el espacio de nombres de user , en lugar de cambiarlo con in-ns como se menciona en otra respuesta . En su lugar, pase el espacio de nombres como argumento para run-tests (como se muestra arriba).

También recomendaría que no te (use ''clojure.test) ; es por eso que sugerí (require ''[clojure.test :refer [run-tests]]) arriba. Para obtener más información, lea http://dev.clojure.org/jira/browse/CLJ-879