0

我有一些带有do while外循环和切换内循环的javascript代码,内切换循环包含中断外循环。下面是代码的简化版本。
在使用 jstestdriver 覆盖率插件生成代码覆盖率时,我在“break loop1”行收到错误“找不到标签”。

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

有什么帮助吗??

4

1 回答 1

0

这是因为JsTestDriver 覆盖插件中的一个错误。在修复之前,解决方案重构您的代码以不使用标签来中断循环。

代码覆盖插件在每一行插入语句来记录哪些行已经被执行,甚至在标签和do语句之间。这使它们彼此分离。

在启用覆盖的情况下执行的代码如下所示:

// ...
LCOV_1f[3]++; loop1:
    LCOV_1f[4]++; do {
        // ...
    } while (a !=0);
于 2012-06-29T09:16:51.253 回答