{"id":15632992,"url":"https://github.com/crisptrutski/boot-cljs-test","last_synced_at":"2025-07-09T12:08:09.661Z","repository":{"id":34819874,"uuid":"38806987","full_name":"crisptrutski/boot-cljs-test","owner":"crisptrutski","description":"Boot task to run ClojureScript tests.","archived":false,"fork":false,"pushed_at":"2018-06-28T05:17:08.000Z","size":113,"stargazers_count":53,"open_issues_count":13,"forks_count":18,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-09T12:06:49.762Z","etag":null,"topics":["boot","boot-tasks","clojurescript","testing"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crisptrutski.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-09T08:09:17.000Z","updated_at":"2023-07-25T13:57:04.000Z","dependencies_parsed_at":"2022-09-02T22:00:50.182Z","dependency_job_id":null,"html_url":"https://github.com/crisptrutski/boot-cljs-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crisptrutski/boot-cljs-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisptrutski%2Fboot-cljs-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisptrutski%2Fboot-cljs-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisptrutski%2Fboot-cljs-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisptrutski%2Fboot-cljs-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crisptrutski","download_url":"https://codeload.github.com/crisptrutski/boot-cljs-test/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crisptrutski%2Fboot-cljs-test/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264455988,"owners_count":23611065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boot","boot-tasks","clojurescript","testing"],"created_at":"2024-10-03T10:46:20.771Z","updated_at":"2025-07-09T12:08:09.639Z","avatar_url":"https://github.com/crisptrutski.png","language":"Clojure","readme":"# boot-cljs-test\n\nBoot task to make ClojureScript testing quick, easy, and consistent with testing Clojure.\n\n[![Circle\nCI](https://circleci.com/gh/crisptrutski/boot-cljs-test.svg?style=svg)](https://circleci.com/gh/crisptrutski/boot-cljs-test) [![Clojars Project](https://img.shields.io/clojars/v/crisptrutski/boot-cljs-test.svg)](https://clojars.org/crisptrutski/boot-cljs-test)\n\n[](dependency)\n```clojure\n[crisptrutski/boot-cljs-test \"0.3.5-SNAPSHOT\"] ;; latest release\n```\n[](/dependency)\n\n## Getting started\n\nAdd to `build.boot` and make sure the tests are added to the classpath.\n\n```\n(set-env! :dependencies '[[crisptrutski/boot-cljs-test \"0.3.0\" :scope \"test\"]])\n(require '[crisptrutski.boot-cljs-test :refer [test-cljs]])\n(deftask testing [] (merge-env! :source-paths #{\"test\"}) identity)\n```\n\nRun `boot testing test-cljs`\n\n```\n;; Testing your.awesome.foo-test\n;; Testing your.spectacular.bar-test\n\nRan 1337 tests containing 9001 assertions.\n0 failures, 0 errors\n```\n\nThe task takes care of generating tedious runner namespaces for you!\n\nYou can also use our own runner namespaces - they will be picked up when by a matching `id`.\n\neg. `boot testing test-cljs --ids=\"my/awesome/test_runner\"`\n\nThe heavy lifting of running and reporting errors is handled by the excellent [Doo](https://github.com/bensu/doo)\n\nThere are a lot of options and conveniences, some of which are demo'd in [this example project](/example)\n\nSupported task options:\n\n```\n  -h, --help                 Print this help info.\n  -j, --js-env VAL           VAL sets environment to execute within, eg. slimer, phantom, ...\n  -n, --namespaces NS        Conj NS onto namespaces to run, supports regexes.\n                             If omitted tries \"*-test\" then \"*\".\n  -e, --exclusions NS        Conj NS onto namespaces to exclude, supports regexes.\n  -i, --ids IDS              Conj IDS onto test runner ids. Generates each config if not found.\n  -c, --cljs-opts OPTS       OPTS sets options to pass on to CLJS compiler.\n  -O, --optimizations LEVEL  LEVEL sets optimization level for CLJS compiler, defaults to :none.\n  -d, --doo-opts VAL         VAL sets options to pass on to Doo.\n  -u, --update-fs?           Skip fileset rollback before running next task.\n                             By default fileset is rolled back to support additional cljs suites, clean JARs, etc.\n  -x, --exit?                Throw exception on error or inability to run tests.\n  -k, --keep-errors?         Retain memory of test errors after rollback.\n  -s, --symlink?             Use symlinks to copy resources and node dependencies into test output folder.\n  -v, --verbosity VAL        VAL sets log level, from 0 to 3.\n  -o, --out-file VAL         VAL sets DEPRECATED Output file for test script.\n```\n\n## Getting fancy\n\nTo steal the Git terminology of \"plumbing\" vs \"porcelain\", the `test-cljs` task is the high level porcelain API.\n\nThe plumbing is also stable and open for business:\n\n 1. `prep-cljs-tests` - generates boot-cljs edn files and test runner cljs files (if necessary)\n 2. `run-cljs-tests` - executes a test runner\n 3. `report-errors!` - throws if any errors were reported in upstream tests\n 4. `clear-errors` - clears any error reports from upstream tests\n 5. `fs-snapshot` - passes current snapshot state down pipeline as metadata\n 6. `fs-restore` - rolls back to the snapshot passed down as metadata\n\nThese could also be referred to as the \"simple\" and \"easy\" APIs :smile:\n\nThe `test-cljs` task (roughly speaking) composes these tasks in the obvious way:\n\n`fs-snapshot -\u003e prep-cljs-tests -\u003e run-cljs-tests -\u003e report-errors -\u003e fs-restore`\n\nIf you need to support more exotic workflows, or carve out efficiency - just use these tasks directly!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisptrutski%2Fboot-cljs-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrisptrutski%2Fboot-cljs-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrisptrutski%2Fboot-cljs-test/lists"}