Как включить сообщения об ошибках от «доказать»?

Это простой тест 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 :

Другие вопросы по тегам