Devel :: Cover - Невозможно пометить ветку как непокрываемую - PullRequest
0 голосов
/ 09 декабря 2018

Честно говоря, я не уверен, что это ошибка или я что-то упустил.

Devel::Cover игнорирует мои # uncoverable branch true на основании предыдущего условия.

У меня есть 2 файла - Test и Test2 - uncoverable находится в Test.

Теперь, когда условие триггера (см. Ниже) не закомментировано, я получаю 50% покрытия ветви, которое выглядит так:

messed up coverage

Теперь закомментируйте условие триггера и запустите все снова, и я получу:

expected coverage

Ветвьтеперь должным образом игнорируется как неустранимый.Единственное, что изменилось, это закомментировало условие триггера .

Я действительно не понимаю этого поведения - если бы кто-нибудь захотел попробовать это, чтобы увидеть, не это ли японимание чего-либо или ошибка.

Отказ от ответственности: я не гуру 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...