«сделать тест» более многословным в Perl - PullRequest
9 голосов
/ 15 марта 2011

Когда я запускаю make test с использованием обычного тестового жгута, который есть у модулей CPAN, он просто выдаст краткое резюме (если все прошло хорошо).

t/000_basic.t .......................... ok   
t/001_db_handle.t ...................... ok     
t/002_dr_handle.t ...................... ok     
t/003_db_can_connect.t ................. ok   
... snip ...
All tests successful.
Files=30, Tests=606,  2 wallclock secs 
Result: PASS

Если я запускаю тесты по отдельности, они выводят гораздо более подробную информацию.

1..7
ok 1 - use DBIx::ProcedureCall::PostgreSQL;
ok 2 - simple call to current_time
ok 3 - call to power() with positional parameters
ok 4 - call to power() using the run() interface
ok 5 - call to setseed with a named parameter
ok 6 - call a table function
ok 7 - call a table function and fetch

Как мне запустить все тесты в этом подробном режиме? Есть ли что-то, что я могу передать make test?

Ответы [ 2 ]

14 голосов
/ 15 марта 2011

Документы ExtUtils :: MakeMaker объясняют это в разделе make test :

make test TEST_VERBOSE=1

Если в дистрибутиве используется Module :: Build , это немного отличается:

./Build test verbose=1

Вы также можете использовать команду proof , которая поставляется с Test-Harness :

prove -bv

(или prove --blib --verbose, если вы предпочитаете длинные опции.) Эта команда немного отличается, потому что она не сначала строит модуль. Опция --blib заставляет его искать встроенный, но неустановленный модуль, созданный make или ./Build, но если вы забыли перестроить модуль после изменения чего-либо, он запустит тесты для ранее созданной копии , Если вы вообще не создали модуль, он протестирует установленную версию модуля.

Докажите также позволяет запускать только определенный тест или тесты:

prove -bv t/failing.t
7 голосов
/ 15 марта 2011

Вы также можете использовать команду prove:

prove --blib --verbose

из верхнего каталога распакованного модуля. --blib содержит необходимые каталоги для дистрибутива встроенного, но не установленного модуля.

...