Данный документ является частичным переводом http://search.cpan.org/~andya/Test-Harness-3.12/lib/Test/Harness.pm
- Синтаксис
- Экспорт
- Функции Test::Harness
- Переменные окружения, которые устанавливает TEST::HARNESS
- Переменные окружения, которые влияют на работу TEST::HARNESS
- Полезные ссылки
Синтаксис
Функции модуля Test::Harness осуществляют запуск стандартных тестовых скриптов Perl с последующим выводом статистических отчетов. Модуль способен существенно облегчить управление большими наборами тестовых файлов.
Синтаксис
|
1 2 |
use Test::Harness; runtests(@test_files); |
Экспорт
Для работы с функцией runtests() достаточно просто подключить модуль Test::Harness. Функция экспортируется по умолчанию.
|
1 |
use Test::Harness; |
Функция execute_tests, а так же переменные $verbose, $switches, $debug экспортируются по запросу.
|
1 |
use Test::Harness qw(execute_tests); |
Функции Test::Harness
runtests( @test_files )
Функция запускает на выполнение все перечисленные в массиве @test_files тесты. Информацию о процессе тестирования и результатах получает из данных, которые направляются тестами в STDOUT. Выводит результаты об ошибках и информацию об успешно пройденных тестах в общем отчете. В случае успешного завершения всех тестов, возвращает true. В противном случае, завершает работу и возвращает диагностическое сообщение.
Пример использования:
|
1 2 3 4 5 6 |
#!/usr/bin/perl use Test::Harness; @test_files = qw(test_more.pl test_simple.pl); runtests(@test_files); |
Вывод результатов работы функции:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
%perl test_harness.pl test_more......ok test_simple....NOK 1 # Failed test '1+1=3' # in test_simple.pl at line 5. test_simple....ok 2/2# Looks like you failed 1 test of 2. test_simple....dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 1 Failed 1/2 tests, 50.00% okay Failed Test Stat Wstat Total Fail List of Failed ------------------------------------------------------------------------------- test_simple.pl 1 256 2 1 1 Failed 1/2 test scripts. 1/3 subtests failed. Files=2, Tests=3, 0 wallclock secs ( 0.05 cusr + 0.01 csys = 0.06 CPU) Failed 1/2 test programs. 1/3 subtests failed. |
execute_tests( tests => \@test_files, out => \*FH )
Подобно runtests(), функция execute_tests запускает на выполнение все заданные в массиве @test_files тесты, но при этом не генерирует общий итоговый отчет. В процессе тестирования, вся информация выводится по указанному пути (по-умолчанию, в STDOUT).
Пример:
|
1 2 3 4 5 6 7 |
#!/usr/bin/perl use Test::Harness qw(execute_tests); @test_files = qw(test_more.pl test_simple.pl); execute_tests(tests => \@test_files); |
Вывод:
|
1 2 3 4 5 6 7 8 9 10 11 |
%perl test_harness.pl test_more......ok test_simple....NOK 1 # Failed test '1+1=3' # in test_simple.pl at line 5. test_simple....ok 2/2# Looks like you failed 1 test of 2. test_simple....dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 1 Failed 1/2 tests, 50.00% okay |
Кроме общего вывода, функция execute_tests возвращает список из двух значений $total и $failed. $total - это ссылка на хэш, который содержит суммарную информацию о всех пройденных тестах. Его стандартные ключи и значения:
|
1 2 3 4 5 6 7 8 9 10 11 |
bonus Number of individual todo tests unexpectedly passed max Number of individual tests ran ok Number of individual tests passed sub_skipped Number of individual tests skipped todo Number of individual todo tests files Number of test files ran good Number of test files passed bad Number of test files failed tests Number of test files originally given skipped Number of test files skipped |
$failed - это ссылка на хэш, который содержит информацию о тестах, которые при прохождении потерпели неудачу. Ключами хэша являются названия файлов тестов, а значения - информация о причинах неудачного тестирования.
|
1 2 3 4 5 6 |
name Name of the test which failed estat Script's exit value wstat Script's wait status max Number of individual tests failed Number which failed canon List of tests which failed (as string). |
Пример использования переменных $total и $failed:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/usr/bin/perl use Test::Harness qw(execute_tests); @test_files = qw(test_more.pl test_simple.pl); ($total, $failed) = execute_tests(tests => \@test_files); print "Total:\n"; foreach $key (keys %$total) { print $key." : ". $total->{$key}."\n"; } print "\n"; print "Failed:\n"; foreach $key (keys %$failed) { print $key." : ". $failed->{$key}->{max}."\n"; } print "\n"; |
Вывод:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
%perl test_harness.pl test_more......ok test_simple....NOK 1 # Failed test '1+1=3' # in test_simple.pl at line 5. # Looks like you failed 1 test of 2. test_simple....dubious Test returned status 1 (wstat 256, 0x100) DIED. FAILED test 1 Failed 1/2 tests, 50.00% okay Total: files : 2 max : 3 bonus : 0 skipped : 0 sub_skipped : 0 ok : 2 bad : 1 good : 1 tests : 2 bench : Benchmark=ARRAY(0x81383bc) todo : 0 Failed: test_simple.pl : 2 |
Переменные окружения, которые устанавливает TEST::HARNESS
Данные переменные Test::Harness устанавливает перед запуском тестов на выполнение.
- HARNESS_ACTIVE - Принимает истинное (true) значение. Переменная позволяет тестам определить, запущены они на выполнение с помощью Test::Harness, или каким-либо другим способом.
- HARNESS_VERSION - Номер версии модуля Test::Harness.
Переменные окружения, которые влияют на работу TEST::HARNESS
- HARNESS_TIMER - присвоение этой переменной истинного значения (true), будет служить Test::Harness указанием выводить для каждого теста количество миллисекунд, в течение которых он выполнялся.
- HARNESS_VERBOSE - если переменной задано истинное (true) значение, Test::Harness будет выводить отчеты с большими текстами описаний. Для установки значений можно использовать переменную $Test::Harness::verbose. Значение $Test::Harness::verbose является приоритетным.
- HARNESS_OPTIONS - дополнительные параметры. В настоящее время поддерживаются опции:
- j<n> - запуск <n> (по умолчанию 9) параллельных процессов.
- f - использование fork.
Разделение нескольких параметров производится с помощью двоеточия.
|
1 |
HARNESS_OPTIONS=j9:f make test |
Полезные ссылки
RU
Тестирование с помощью Libtap. Stig Brautaset, перевод Владимир Куксенок
EN
Test::More. By Michael G Schwern. Copyright 2001-2002, 2004-2006