Честно говоря, я не уверен, что это ошибка или я что-то упустил.
Devel::Cover
игнорирует мои # uncoverable branch true
на основании предыдущего условия.
У меня есть 2 файла - Test
и Test2
- uncoverable
находится в Test
.
Теперь, когда условие триггера (см. Ниже) не закомментировано, я получаю 50% покрытия ветви, которое выглядит так:
Теперь закомментируйте условие триггера и запустите все снова, и я получу:
Ветвьтеперь должным образом игнорируется как неустранимый.Единственное, что изменилось, это закомментировало условие триггера .
Я действительно не понимаю этого поведения - если бы кто-нибудь захотел попробовать это, чтобы увидеть, не это ли японимание чего-либо или ошибка.
Отказ от ответственности: я не гуру Perl :) Я пытался упростить это больше, но я не мог воспроизвести это иначе - даже упрощение это ценится - возможно, это поможет проследить доосновная причина этого.
РЕДАКТИРОВАТЬ : я сделал этот репо, чтобы упростить воспроизведение: https://github.com/lukaskuzmiak/Devel--Cover_coverage_issue_PoC
package My::Test;
use 5.026;
use strict;
use warnings;
use My::Test2;
sub test {
my $test2 = My::Test2->new({});
if ($test2 > 1) { say 'something'; } # let's call this "trigger condition"
# uncoverable branch true
$test2->asdf(
{
variable => 'asdf'
}
) or say 'something else';
return 1;
}
1;
И второй Test2
package My::Test2;
use 5.026;
use strict;
use warnings;
sub new {
my ($class, $args) = @_;
my $self = {};
return bless $self, $class;
}
sub asdf {
my ($class, $args) = @_;
return 1;
}
1;