使用jstestdriver在代码覆盖率中出现“找不到标签”错误

时间:2011-09-01 09:41:42

标签: javascript js-test-driver

我有一些javascript代码与外部循环和切换内部循环,内部开关循环包含break外部循环。以下是代码的简化版本 在使用jstestdriver coverage插件生成代码覆盖时,我在“break loop1”行收到错误“Label not found”。

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

任何帮助??

1 个答案:

答案 0 :(得分:0)

这是因为JsTestDriver coverage插件中有bug。在修复之前,解决方案重构您的代码不使用标签来打破循环。

代码覆盖率插件在每一行上插入语句,以记录已执行的行,甚至在标签和do语句之间。这使他们彼此分离。

启用coverage后执行的代码如下所示:

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