Я хочу раскрасить вывод описания подтеста на основе результата (пройден / не пройден) подтеста. Вот что у меня так далеко
sub run_subtest {
my $desc = 'subtest description';
subtest _construct_colored_description($desc) => sub { $passed = 1; #passed is global };
}
sub _construct_colored_description {
my $desc = shift;
return colored [$passed ? 'green' : 'red'], $desc;
}
Я use use Term::ANSIColor
и видел цветной вывод. Однако переключение с красного на зеленый происходит в следующем подтесте. Например, я напечатал зеленые тесты, один не пройден, все еще печатает зеленый, а следующий - красный. Это говорит мне, что $passed
и colored ...
работают, но блок в subtest
оценивается после того, как _construct_colored_description
определяет цвет для вывода.
Для моего реального кода, проверьте мой проект github https://github.com/bostonaholic/test-more-behaviour
Спасибо за вашу помощь!