Browse Source

t/README: Update "Skipping tests" to align with best practices

The example I initially added to "Skipping tests" wasn't very
good. We'd rather skip tests using the three-arg prereq form to the
test_* functions, not bail out with a skip message.

Change the documentation to reflect that, but retain the bailout
example under a disclaimer which explains that it's probably not a
good idea to use it.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 15 years ago committed by Junio C Hamano
parent
commit
99d9050d25
  1. 21
      t/README

21
t/README

@ -319,9 +319,21 @@ Keep in mind:
Skipping tests Skipping tests
-------------- --------------


If you need to skip all the remaining tests you should set skip_all If you need to skip tests you should do so be using the three-arg form
and immediately call test_done. The string you give to skip_all will of the test_* functions (see the "Test harness library" section
be used as an explanation for why the test was skipped. for instance: below), e.g.:

test_expect_success PERL 'I need Perl' "
'$PERL_PATH' -e 'hlagh() if unf_unf()'
"

The advantage of skipping tests like this is that platforms that don't
have the PERL and other optional dependencies get an indication of how
many tests they're missing.

If the test code is too hairy for that (i.e. does a lot of setup work
outside test assertions) you can also skip all remaining tests by
setting skip_all and immediately call test_done:


if ! test_have_prereq PERL if ! test_have_prereq PERL
then then
@ -329,6 +341,9 @@ be used as an explanation for why the test was skipped. for instance:
test_done test_done
fi fi


The string you give to skip_all will be used as an explanation for why
the test was skipped.

End with test_done End with test_done
------------------ ------------------



Loading…
Cancel
Save