clojure.test.check.clojure-test
*default-test-count*
dynamic
*report-shrinking*
dynamic
If true, a verbose report of the property being tested, the failing return value, and the arguments provoking that failure is emitted prior to the start of the shrinking search.
*report-trials*
dynamic
Controls whether property trials should be reported via clojure.test/report. Valid values include:
- false - no reporting of trials (default)
- a function - will be passed a clojure.test/report-style map containing :clojure.test.check/property and :clojure.test.check/trial slots
- true - provides quickcheck-style trial reporting (dots) via
trial-report-dots
(Note that all reporting requires running quick-check
within the scope of a clojure.test run (via test-ns
, test-all-vars
, etc.)
Reporting functions offered by clojure.test.check include trial-report-dots
and trial-report-periodic
(which prints more verbose trial progress information every *trial-report-period*
milliseconds.
*trial-report-period*
dynamic
Milliseconds between reports emitted by trial-report-periodic
.
assert-check
(assert-check {:keys [result], :as m})
defspec
macro
(defspec name property)
(defspec name num-tests? property)
(defspec name options? property)
Defines a new clojure.test test var that uses quick-check
to verify [property] with the given [args] (should be a sequence of generators), [default-times] times by default. You can call the function defined as [name] with no arguments to trigger this test directly (i.e., without starting a wider clojure.test run), with a single argument that will override [default-times], or with a map containing any of the keys [:seed :max-size :num-tests].
report-failure
(report-failure property-fun result trial-number failing-params)
report-trial
(report-trial property-fun so-far num-tests)
trial-report-dots
(trial-report-dots {[so-far total] :clojure.test.check.clojure-test/trial})
Intended to be bound as the value of *report-trials*
; will emit a single dot every 1000 trials reported.
trial-report-periodic
(trial-report-periodic m)
Intended to be bound as the value of *report-trials*
; will emit a verbose status every *trial-report-period*
milliseconds, like this one:
Passing trial 3286 / 5000 for (your-test-var-name-here) (:)