JS 单元测试未出现在 VS 2015 测试资源管理器中
JS Unit Test not appearing in VS 2015 Test Explorer
我是 JavaScript 单元测试的新手。我正在尝试测试 typescript 类,我的测试也是用 typescript 编写的,如下所示:
/// <reference path="../../typings/qunit/qunit.d.ts" />
import Utility1 = require("../utility");//This is script I want to test.
test("utility_test",function() {
...
var result = ...;
var expected = ...;
equal(result, expected, "Test failed");
})
我正在使用 VS 2015,如图所示安装了 chutzpah 测试适配器 here. To be clear I have installed this to extension to vs 2015: Chutzpah Test Runner Context Menu Extension, and Chutzpah Test Adapter for the Test Explorer and also added Chutzpah NuGet 包。
但是当我构建我的项目时,测试没有出现在测试资源管理器中。当我尝试从上下文菜单 运行 测试时,它失败并出现此错误:Error: Error: Called start() outside of a test context while already started
.
谁能告诉我哪里出错了?
编辑
对于使用 require.js 寻找解决方案的人,this here 对我有用。现在我的 Chutzpah.json
如下所示:
{
"Framework": "qunit",
"CodeCoverageExcludes": [ "*/require.config.js" ],
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"TypeScriptModuleKind": "AMD",
"AMDBaseUrl": "",
"EnableTestFileBatching": true,
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"References": [
{ "Path": "require.js" },
{ "Path": "require.config.js" },
],
"Tests": [
{ "Path": "jsTests" }
]
}
Chutzpah 不再在其中捆绑 Typescript 编译器(从版本 4 开始)。您必须告诉 Chutzpah 在哪里可以找到您生成的 .js
文件(or/and 如果需要,如何编译它们)。
见the documentation for the Compile
setting
以及 these code samples.
大多数人在使用 Visual Studio 时会使用外部编译模式,因为 VS 可以为您编译 .ts
文件,您只需要告诉 Chutzpah 在哪里可以找到它们。看起来像这样:
{
"Compile": {
"Mode": "External",
"Extensions": [".ts"],
"ExtensionsWithNoOutput": [".d.ts"]
},
"References": [
{"Includes": ["*/src/*.ts"], "Excludes": ["*/src/*.d.ts"] }
],
"Tests": [
{ "Includes": ["*/test/*.ts"], "Excludes": ["*/test/*.d.ts"] }
]
}
我是 JavaScript 单元测试的新手。我正在尝试测试 typescript 类,我的测试也是用 typescript 编写的,如下所示:
/// <reference path="../../typings/qunit/qunit.d.ts" />
import Utility1 = require("../utility");//This is script I want to test.
test("utility_test",function() {
...
var result = ...;
var expected = ...;
equal(result, expected, "Test failed");
})
我正在使用 VS 2015,如图所示安装了 chutzpah 测试适配器 here. To be clear I have installed this to extension to vs 2015: Chutzpah Test Runner Context Menu Extension, and Chutzpah Test Adapter for the Test Explorer and also added Chutzpah NuGet 包。
但是当我构建我的项目时,测试没有出现在测试资源管理器中。当我尝试从上下文菜单 运行 测试时,它失败并出现此错误:Error: Error: Called start() outside of a test context while already started
.
谁能告诉我哪里出错了?
编辑
对于使用 require.js 寻找解决方案的人,this here 对我有用。现在我的 Chutzpah.json
如下所示:
{
"Framework": "qunit",
"CodeCoverageExcludes": [ "*/require.config.js" ],
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"TypeScriptModuleKind": "AMD",
"AMDBaseUrl": "",
"EnableTestFileBatching": true,
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"References": [
{ "Path": "require.js" },
{ "Path": "require.config.js" },
],
"Tests": [
{ "Path": "jsTests" }
]
}
Chutzpah 不再在其中捆绑 Typescript 编译器(从版本 4 开始)。您必须告诉 Chutzpah 在哪里可以找到您生成的 .js
文件(or/and 如果需要,如何编译它们)。
见the documentation for the Compile
setting
以及 these code samples.
大多数人在使用 Visual Studio 时会使用外部编译模式,因为 VS 可以为您编译 .ts
文件,您只需要告诉 Chutzpah 在哪里可以找到它们。看起来像这样:
{
"Compile": {
"Mode": "External",
"Extensions": [".ts"],
"ExtensionsWithNoOutput": [".d.ts"]
},
"References": [
{"Includes": ["*/src/*.ts"], "Excludes": ["*/src/*.d.ts"] }
],
"Tests": [
{ "Includes": ["*/test/*.ts"], "Excludes": ["*/test/*.d.ts"] }
]
}