В моем модуле у меня есть следующий код:
croak("unable to parse file: $!");
Затем в своих тестах я хочу проверить, что я получаю правильное сообщение об ошибке, когда пытаюсь разобрать несуществующий файл:
like(
exception { HTML::Tree->new_from_file( "t/non_existent.html" ) },
qr!^unable to parse file: No such file !,
"opening missing file failed"
);
Это работает нормально, пока тесты выполняются на английском языке. Но если вы запустите тесты в немецкой локали, появится сообщение об ошибке , невозможность анализа файла: Datei oder Verzeichnis nicht gefunden
, и тест завершится неудачно. Аналогичные проблемы есть и в других локациях.
Не могу поверить, что это впервые, но я не могу найти в CPAN никаких модулей, решающих эту проблему. Люди просто никогда не проверяют $!
часть сообщения об ошибке? Есть ли лучшее решение, чем изменение теста только для проверки qr!^unable to parse file: !
?
Примечание: это RT#77823 в дереве HTML.