Как включить сообщения об ошибках от «доказать»?
Это простой тест Perl, в котором есть синтаксические ошибки:
$ echo 'foo+' > t1.t
$ perl t1.t
syntax error at t1.t line 1, at EOF
Execution of t1.t aborted due to compilation errors.
Есть ли способ предоставить утилите возможность увидеть это сообщение об ошибке? В настоящее время, если я запускаю этот тест с помощью проверки, я не могу понять, что с ним не так:
$ prove -v t1.t
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
Test Summary Report
-------------------
t1.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
Files=1, Tests=0, 0 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU)
Result: FAIL
В моем случаеt1.t
тест очень сложен (я не могу вставить его код), и я могу запустить его напрямую с помощьюperl
без проблем, но я не могу его запуститьprove
. Из-за ошибок, подобных описанным выше. Поэтому я пытаюсь найти способ увидеть реальную причину неудачного теста.
UPD
Подробная информация об отладке: https://pastebin.com/gqMbdTb8
1 ответ
Во время отладки я нашел эту переменную средыPERL_TEST_HARNESS_DUMP_TAP
. Мы можем установить для него какое-то имя каталога и увидеть результат тестирования.
$ echo 'foo+' > t1.t
$ PERL_TEST_HARNESS_DUMP_TAP=output perl t1.t
Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
Test Summary Report
-------------------
t1.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: No plan found in TAP output
Files=1, Tests=0, 0 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU)
Result: FAIL
$ cat output/t1.t
syntax error at t1.t line 1, at EOF
Execution of t1.t aborted due to compilation errors.
Теперь мы можем понять, что не так с нашимt1.t
тест.
Тем не менее я не нашел возможности/решения, чтобы увидеть этот вывод изprove
как в примере @ikegami :