Ошибка "Метка не найдена" в покрытии кода с помощью jstestdriver - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть некоторый код javascript с do while внешним циклом и переключением внутреннего цикла, внутренний цикл переключения содержит разрыв externalloop.ниже приведена упрощенная версия кода.
При создании покрытия кода с помощью плагина покрытия jstestdriver я получаю сообщение об ошибке «Метка не найдена» в строке «break loop1».

    var a = 2;
    var c = 5;
    loop1:
        do {
            switch (c) {
            case 1 :
                break;
            default :
                break loop1;
            }
            a--;
        } while (a !=0);

Любая помощь ??

1 Ответ

0 голосов
/ 29 июня 2012

Это из-за ошибки в плагине покрытия JsTestDriver.До исправления решение будет рефакторинг ваш код , чтобы не использовать метки для прерывания циклов.

Плагин покрытия кода вставляет операторы вкаждая строка для записи, какие строки были выполнены, даже между меткой и оператором do.Это отделяет их друг от друга.

Код, выполняемый с включенным покрытием, будет выглядеть примерно так:

// ...
LCOV_1f[3]++; loop1:
    LCOV_1f[4]++; do {
        // ...
    } while (a !=0);
...