Unit testing environment for SWI-Prolog and SICStus Prolog. For usage,
please visit https://www.swi-prolog.org/pldoc/package/plunit.
- set_test_options(+Options)
- Specifies how to deal with test suites. Defined options are:
- load(+Load)
- Whether or not the tests must be loaded. Values are
never
, always
, normal
(only if not optimised)
- run(+When)
- When the tests are run. Values are
manual
, make
or make(all)
.
- format(+Mode)
- Currently one of
tty
or log
. tty
uses terminal
control to overwrite successful tests, allowing the
user to see the currently running tests and output
from failed tests. This is the default of the output
is a tty. log
prints a full log of the executed
tests and their result and is intended for non-interactive
usage.
- output(+When)
- If
always
, emit all output as it is produced, if never
,
suppress all output and if on_failure
, emit the output
if the test fails.
- show_blocked(+Bool)
- Show individual blocked tests during the report.
- occurs_check(+Mode)
- Defines the default for the
occurs_check
flag during
testing.
- cleanup(+Bool)
- If
true
(default =false), cleanup report at the end
of run_tests/1. Used to improve cooperation with
memory debuggers such as dmalloc.
- jobs(Num)
- Number of jobs to use for concurrent testing. Default
is one, implying sequential testing.
- timeout(+Seconds)
- Set timeout for each individual test. This acts as a
default that may be overuled at the level of units or
individual tests. A timeout of 0 or negative is handled
as inifinite.
- begin_tests(+UnitName:atom) is det
- begin_tests(+UnitName:atom, Options) is det
- Start a test-unit. UnitName is the name of the test set. the
unit is ended by :-
end_tests(UnitName)
.
- end_tests(+Name) is det
- Close a unit-test module.
- To be done
- - Run tests/clean module?
- - End of file?
- run_tests is semidet
- run_tests(+TestSet) is semidet
- run_tests(+TestSet, +Options) is semidet
- Run tests and report about the results. The predicate run_tests/0
runs all known tests that are not blocked. The predicate run_tests/1
takes a specification of tests to run.
The predicate run_tests/2 is synchronized. Concurrent testing may
be achieved using the relevant options. See
set_test_options/1. Options are passed to set_test_options/1. In
addition the following options are processed:
- summary(-Summary)
- Unify Summary do a dict holding the keys below. The value of
these keys is an integer describing the number of tests. If
this option is given, run_tests/2 does not fail if some tests
failed.
- total
- passed
- failed
- timeout
- blocked
- Arguments:
-
TestSet | - is either a single specification or a list of
specifications. Each single specification is either the name of a
test-unit or a term <test-unit>:<test>, denoting a single test
within a unit. If TestSet is all , all known tests are executed. |
- running_tests is det
- Print the currently running test.
- current_test(?Unit, ?Test, ?Line, ?Body, ?Options) is nondet
- True when a test with the specified properties is loaded.
- current_test_unit(?Unit, ?Options) is nondet
- True when a Unit is a current unit test declared with Options.
- test_report(+What) is det
- Produce reports on test results after the run. Currently only
supports
fixme
for What.
- load_test_files(+Options) is det
- Load .plt test-files related to loaded source-files. Options is
currently ignored.
- user:message_hook(+Severity, +Message, +Lines) is semidet[multifile]
- Redefine printing some messages. It appears SICStus has no way
to get multiple messages at the same line, so we roll our own.
As there is a lot pre-wired and checked in the SICStus message
handling we cannot reuse the lines. Unless I miss something ...
- make_unit_module(+Name, -ModuleName) is det
- unit_module(+Name, -ModuleName) is det
Re-exported predicates
The following predicates are exported from this file while their implementation is defined in imported modules or non-module files loaded by this module.
- begin_tests(+UnitName:atom) is det
- begin_tests(+UnitName:atom, Options) is det
- Start a test-unit. UnitName is the name of the test set. the
unit is ended by :-
end_tests(UnitName)
.
- run_tests is semidet
- run_tests(+TestSet) is semidet
- run_tests(+TestSet, +Options) is semidet
- Run tests and report about the results. The predicate run_tests/0
runs all known tests that are not blocked. The predicate run_tests/1
takes a specification of tests to run.
The predicate run_tests/2 is synchronized. Concurrent testing may
be achieved using the relevant options. See
set_test_options/1. Options are passed to set_test_options/1. In
addition the following options are processed:
- summary(-Summary)
- Unify Summary do a dict holding the keys below. The value of
these keys is an integer describing the number of tests. If
this option is given, run_tests/2 does not fail if some tests
failed.
- total
- passed
- failed
- timeout
- blocked
- Arguments:
-
TestSet | - is either a single specification or a list of
specifications. Each single specification is either the name of a
test-unit or a term <test-unit>:<test>, denoting a single test
within a unit. If TestSet is all , all known tests are executed. |
- run_tests is semidet
- run_tests(+TestSet) is semidet
- run_tests(+TestSet, +Options) is semidet
- Run tests and report about the results. The predicate run_tests/0
runs all known tests that are not blocked. The predicate run_tests/1
takes a specification of tests to run.
The predicate run_tests/2 is synchronized. Concurrent testing may
be achieved using the relevant options. See
set_test_options/1. Options are passed to set_test_options/1. In
addition the following options are processed:
- summary(-Summary)
- Unify Summary do a dict holding the keys below. The value of
these keys is an integer describing the number of tests. If
this option is given, run_tests/2 does not fail if some tests
failed.
- total
- passed
- failed
- timeout
- blocked
- Arguments:
-
TestSet | - is either a single specification or a list of
specifications. Each single specification is either the name of a
test-unit or a term <test-unit>:<test>, denoting a single test
within a unit. If TestSet is all , all known tests are executed. |