0

dowhile外部ループとスイッチ内部ループを含むJavaScriptコードがあります。内部スイッチループにはブレーク外部ループが含まれています。以下はコードの簡略版です。
jstestdriverカバレッジプラグインでコードカバレッジを生成しているときに、「breakloop1」の行に「Labelnotfound」というエラーが表示されます。

    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 に答える