Functions like ert
accept a test selector, a Lisp
expression specifying a set of tests. Test selector syntax is similar
to Common Lisp’s type specifier syntax:
nil
selects no tests.
t
selects all tests.
:new
selects all tests that have not been run yet.
:failed
and :passed
select tests according to their most recent result.
:expected
, :unexpected
select tests according to their most recent result.
ert-test
data type) selects that test.
(member tests...)
selects the elements of
tests, a list of tests or symbols naming tests.
(eql test)
selects test, a test or a symbol
naming a test.
(and selectors…)
selects the tests that match
all selectors.
(or selectors…)
selects the tests that match
any of the selectors.
(not selector)
selects all tests that do not match
selector.
(tag tag)
selects all tests that have tag on
their tags list.
(Tags are optional labels you can apply to tests when you define them.)
(satisfies predicate)
selects all tests that
satisfy predicate, a function that takes a test as argument and
returns non-nil
if it is selected.
Selectors that are frequently useful when selecting tests to run
include t
to run all tests that are currently defined in Emacs,
"^foo-"
to run all tests in package foo
(this assumes
that package foo
uses the prefix foo-
for its test names),
result-based selectors such as (or :new :unexpected)
to
run all tests that have either not run yet or that had an unexpected
result in the last run, and tag-based selectors such as (not
(tag :causes-redisplay))
to run all tests that are not tagged
:causes-redisplay
.