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