JS单元测试未出现在VS 2015测试资源管理器中

Say*_*Pal 6 unit-testing qunit chutzpah typescript visual-studio-2015

我是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");
})
Run Code Online (Sandbox Code Playgroud)

我使用VS 2015放肆测试适配器如图所示安装在这里.为了清楚起见,我已将此安装到vs 2015的扩展:Chutzpah Test Runner上下文菜单扩展,以及用于测试资源管理器的Chutzpah测试适配器,还添加了Chutzpah NuGet包.

然而,当我构建我的项目时,测试不会出现在测试资源管理器中.当我尝试从上下文菜单运行测试时,它会因此错误而失败:Error: Error: Called start() outside of a test context while already started.

谁能告诉我哪里出错了?


编辑 对于寻找require.js解决方案的人来说,对我有用.现在我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" }
    ]
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ela 4

Chutzpah 不再在其中捆绑 Typescript 编译器(从版本 4 开始)。您必须告诉 Chutzpah 在哪里可以找到生成的.js文件(或/以及如果您想要的话如何编译它们)。

请参阅该设置的文档Compile 以及这些代码示例

大多数人在使用 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"] }
  ]
}
Run Code Online (Sandbox Code Playgroud)