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"] }
  ]
}