当 运行 覆盖时,Chutzpah 无法找到参考
Chutzpah Unable to Find Reference When Running Coverage
我已经编写了 QUnit 测试,并在 Visual Studio 2012 年使用 Chutzpah Test Adapter for Test Explorer 对它们进行了 运行 测试。需要某些外部依赖项的测试,例如 jQuery 或 Kendo 在我 运行 代码覆盖时失败,但在 运行 没有代码覆盖时不会失败。
为我重现问题的示例测试文件:
/// <reference path="qunit-2.5.0.js" />
/// <reference path="../Scripts/jquery-2.1.3.js" />
/// <reference path="../Components/componentEnvironment/componentEnvironment.js" />
module("repro.tests");
test("buildUrl - one part returns part", function () {
var ce = new ComponentEnvironment();
var output = ce.buildUrl(["http://localhost"]);
deepEqual(output, "http://localhost");
});
test("jQuery loaded", function () {
var fixture = $("#qunit-fixture");
fixture.append("<div id='grandparent' class='parent grandparent'><div id='parent' class='parent child'><div id='child' class='child'></div></div></div>");
ok(true);
});
在这个例子中,当我从测试资源管理器中 运行 时,两个测试 运行 都成功了,但是如果我改为选择分析代码覆盖率,只有第一个测试通过(这取决于外部我写的文件,但不是 jQuery).
这是我的 chutzpah.json 文件:
{
"CodeCoverageExcludes": ["jquery.*", "kendo.core.*.js"]
}
这是运行覆盖时失败测试的错误消息:
Test Name: repro.tests jQuery loaded
Test FullName: c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js::repro.tests::jquery loaded
Test Source: c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js : line 14
Test Outcome: Failed
Test Duration: 0:00:00.001
Result Message: Died on test #1 global code@file:///c:/dev/tfs/mke/web%20applications/internet/companydashboard/dev/companydashboard/companydashboard/tests/_Chutzpah.3bddafd322dddb16ba3a30cb58251b28.test.html:51:5
appendChild@[native code]: Can't find variable: $ Expected: undefined, Actual: null
Result StackTrace: at repro.tests jQuery loaded in c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js:line 14
在您的 chutzpah.json 文件中,当您列出这些依赖项时,在引用部分(如 jquery)。确保设置属性 "IsTestFrameworkFile: true"。这应该有所帮助。
我已经编写了 QUnit 测试,并在 Visual Studio 2012 年使用 Chutzpah Test Adapter for Test Explorer 对它们进行了 运行 测试。需要某些外部依赖项的测试,例如 jQuery 或 Kendo 在我 运行 代码覆盖时失败,但在 运行 没有代码覆盖时不会失败。
为我重现问题的示例测试文件:
/// <reference path="qunit-2.5.0.js" />
/// <reference path="../Scripts/jquery-2.1.3.js" />
/// <reference path="../Components/componentEnvironment/componentEnvironment.js" />
module("repro.tests");
test("buildUrl - one part returns part", function () {
var ce = new ComponentEnvironment();
var output = ce.buildUrl(["http://localhost"]);
deepEqual(output, "http://localhost");
});
test("jQuery loaded", function () {
var fixture = $("#qunit-fixture");
fixture.append("<div id='grandparent' class='parent grandparent'><div id='parent' class='parent child'><div id='child' class='child'></div></div></div>");
ok(true);
});
在这个例子中,当我从测试资源管理器中 运行 时,两个测试 运行 都成功了,但是如果我改为选择分析代码覆盖率,只有第一个测试通过(这取决于外部我写的文件,但不是 jQuery).
这是我的 chutzpah.json 文件:
{
"CodeCoverageExcludes": ["jquery.*", "kendo.core.*.js"]
}
这是运行覆盖时失败测试的错误消息:
Test Name: repro.tests jQuery loaded
Test FullName: c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js::repro.tests::jquery loaded
Test Source: c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js : line 14
Test Outcome: Failed
Test Duration: 0:00:00.001
Result Message: Died on test #1 global code@file:///c:/dev/tfs/mke/web%20applications/internet/companydashboard/dev/companydashboard/companydashboard/tests/_Chutzpah.3bddafd322dddb16ba3a30cb58251b28.test.html:51:5
appendChild@[native code]: Can't find variable: $ Expected: undefined, Actual: null
Result StackTrace: at repro.tests jQuery loaded in c:\dev\tfs\mke\web applications\internet\companydashboard\dev\companydashboard\companydashboard\tests\test.js:line 14
在您的 chutzpah.json 文件中,当您列出这些依赖项时,在引用部分(如 jquery)。确保设置属性 "IsTestFrameworkFile: true"。这应该有所帮助。