Test Library

The (cyclone test) library contains a testing framework ported from (chibi test) which in turn was ported from CHICKEN.

Testing

Test Groups

Parameters

test

Syntax

(test [name] expect expr)

Evaluate expr and check that it is equal? to expect.

name is used in reporting, and defaults to a printed summary of expr.

test-equal

Syntax

(test-equal equal [name] expect expr)

Equivalent to test, using equal for comparison instead of equal?.

test-error

Syntax

(test-error [name] expr)

Like test but evaluates expr and checks that it raises an error.

test-assert

Syntax

(test-assert [name] expr)

Like test but evaluates expr and checks that it’s true.

test-not

Syntax

(test-not [name] expr)

Like test but evaluates expr and checks that it’s false.

test-values

Syntax

(test-values [name] expect expr)

Like test but expect and expr can both return multiple values.

test-begin

(test-begin)
(test-begin name)

Begin testing a new group until the closing (test-end).

test-end

(test-end)
(test-end name)

Ends testing group introduced with (test-begin), and summarizes the results.

test-propagate-info

(test-propagate-info name expect expr info)

Low-level macro to pass alist info to the underlying test-run.

test-run

(test-run expect expr info)

The procedural interface to testing. expect and expr should be thunks, and info is an alist of properties used in test reporting.

test-exit

(test-exit)

Exits with a failure status if any tests have failed, and a successful status otherwise.

test-group

(test-group body ...)

Wraps body as a single test group, which can be filtered and summarized separately.

current-test-group

The current test group as started by test-group or test-begin.

current-test-verbosity

If true, show more verbose output per test. Inferred from the environment variable TEST_VERBOSE.

current-test-applier

The test applier - what we do with non-skipped tests. Takes the same signature as test-run, should be responsible for evaluating the thunks, determining the status of the test, and passing this information to current-test-reporter.

current-test-skipper

The test skipper - what we do with non-skipped tests. This should not evaluate the thunks and simply pass off to current-test-reporter.

current-test-group-reporter

Takes one argument, a test group, and prints a summary of the test results for that group.

test-failure-count

A running count of all test failures and errors across all groups (and threads). Used by test-exit.

current-test-epsilon

The epsilon used for floating point comparisons.

current-test-comparator

The underlying comparator used in testing, defaults to test-equal?.