test.check
test.check is a free property-based testing tool for Clojure and ClojureScript.
What test.check is
test.check is a free property-based testing tool for Clojure and ClojureScript. Instead of asking developers to enumerate input-and-output examples, it lets them express properties that should remain true across generated inputs. When a property fails, test.check automatically searches for a smaller failing input, including when custom generators are involved. It includes built-in generators and combinators for creating compound or recursive generators. Documentation also demonstrates sampling generated values and making a lazy sequence of samples. The project provides dependency instructions for Clojure CLI with deps.edn, Leiningen, and Maven, and supports the clojure.test and cljs.test runners. The repository identifies version 1.1.3 as its latest stable release. It states that versions 0.9.0 and later require Clojure 1.7.0 or newer, and flags a breaking change for ClojureScript in the 0.8.* releases. Distributed under the Eclipse Public License, the project credits Rich Hickey, Reid Draper, and contributors. Related libraries it lists include test.chuck, collection-check, and herbert.
Good
- Free and distributed under the Eclipse Public License
- Shrinks failing inputs automatically
- Includes compound and recursive generator tools
- Supports clojure.test and cljs.test
Watch out
- Version 0.9.0 and later requires Clojure 1.7.0 or newer
- ClojureScript 0.8.* releases include a noted breaking change
Who it suits
test.check suits Clojure or ClojureScript developers who want to check general properties across generated inputs rather than maintain only enumerated examples. Its generators and shrinking can help teams investigate failing cases.
Verdict
test.check offers property-based testing, generators, and automatic reduction of failing cases at no cost. Check the stated Clojure version requirement and ClojureScript release note against your project before adopting it.
Plans and prices
From test.check's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open source | Free | Distributed under the Eclipse Public License |
The facts
Each one read from test.check's own pages, with the date it was checked.
What it does
- Automatic shrinking
- When a property fails, test.check automatically tries to find smaller failing inputs, including for custom generators.checked 8 Oct 2026
- Clojure requirement
- The repository states that version 0.9.0 and later requires Clojure 1.7.0 or newer.checked 8 Oct 2026
- ClojureScript note
- The repository flags a breaking change for ClojureScript in the 0.8.* releases.checked 8 Oct 2026
- Contributors
- The repository credits Rich Hickey, Reid Draper, and contributors.checked 8 Oct 2026
- Current documented version
- The repository lists 1.1.3 as its latest and stable version.checked 8 Oct 2026
- Generators
- It includes built-in generators and combinators for creating generators, including compound and recursive generators.checked 8 Oct 2026
- License
- The project is distributed under the Eclipse Public License, the same license as Clojure.checked 8 Oct 2026
- Property testing
- It lets developers state properties that should hold for all inputs instead of enumerating individual unit-test inputs and outputs.checked 8 Oct 2026
- Purpose
- test.check is a Clojure property-based testing tool inspired by QuickCheck.checked 8 Oct 2026
- Related libraries
- The repository lists test.chuck, collection-check, and herbert as useful libraries.checked 8 Oct 2026
- Sampling
- The documentation demonstrates sampling generated values and producing a lazy sequence of samples.checked 8 Oct 2026
- Usage
- The project provides dependency instructions for Clojure CLI/deps.edn, Leiningen, and Maven.checked 8 Oct 2026
Alternatives to test.check
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
ScalaCheck
Free planLinuxmacOSWindows6.6Free plan - 3
Gopter
Free planLinuxSelf-hosted6.4Free plan - 4
JSVerify
Free planWebSelf-hosted6.4Free plan - 5
Racket QuickCheck
Free planLinuxmacOSWindows6.4Free plan - 6
FsCheck
Free planLinuxmacOSWindows6.3Free plan
