Ошибка "Метка не найдена" в покрытии кода с помощью jstestdriver

У меня есть некоторый код JavaScript с делать, в то время как внешний цикл и переключатель внутреннего цикла, внутренний цикл переключения содержит разрыв 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 ответ

Решение

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

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

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

// ...
LCOV_1f[3]++; loop1:
    LCOV_1f[4]++; do {
        // ...
    } while (a !=0);
Другие вопросы по тегам