Documentation for sub done-testing
assembled from the following pages:
Module: Test §
From Test
(Test) sub done-testing §
Defined as:
sub done-testing()
Specify that testing has finished. Use this function when you don't have a plan
with the number of tests to run. A plan
is not required when using done-testing
.
It's recommended that the done-testing
function be removed and replaced with a plan
function when all tests are finalized. Use of plan
can help detect test failures otherwise not reported because tests were accidentally skipped due to bugs in the tests or bugs in the compiler. For example:
sub do-stuff ;use Test;ok .is-prime for do-stuff;done-testing;# output: 1..0
The above example is where a done-testing
fails. do-stuff()
returned nothing and tested nothing, even though it should've returned results to test. But the test suite doesn't know how many tests were meant to be run, so it passes.
Adding plan
gives a true picture of the test:
sub do-stuff ;use Test;plan 1;ok .is-prime for do-stuff;# output: 1..1# Looks like you planned 1 test, but ran 0
Note that leaving the done-testing
in place will have no effect on the new test results, but it should be removed for clarity.
The done-testing
function returns False
if any test has failed or less tests were run than planned, it returns True
otherwise.