为什么Chutzpah无法识别所有TypeScript测试?

时间:2016-08-05 19:24:46

标签: unit-testing typescript jasmine chutzpah

我有一个包含以下chutzpah.json的项目:

{
  "Framework": "jasmine",
  "TestHarnessReferenceMode": "AMD",
  "TestHarnessLocationMode": "SettingsFileAdjacent",
  "EnableTestFileBatching": true,

  "References": [
    { "Path": "node_modules/es6-shim/es6-shim.min.js" },
    { "Path": "node_modules/zone.js/dist/zone.min.js" },
    { "Path": "node_modules/reflect-metadata/Reflect.js" },
    { "Path": "node_modules/systemjs/dist/system.js" },
    { "Path": "system-config.js" }
  ],
  "CodeCoverageExcludes": ["node_modules/*"],
  "Tests": [
    { "Path": "app", "Includes": [ "*.spec.ts" ] }
  ]
}

以及以下测试文件

2016-08-05_13-54-34

测试资源管理器只显示存储在第一个文件中的测试 2016-08-05_13-56-33

如果我尝试运行VSTest的命令,我会得到相同的结果: 2016-08-05_13-57-21

如果我调用命令设置文件的名称(例如"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" app\InspectionDataView.spec.ts /UseVsixExtensions:true),则运行文件中的测试。

额外点:

我尝试使用Chutzpah.console.exe直接运行测试,这是我得到的:

2016-08-05_14-05-58

我在这里缺少什么?

注意:使用VS 2015 Update 3

1 个答案:

答案 0 :(得分:0)

Chutzpah不运行TypeScript。它“支持”它,但你必须在chutzpah.json中添加这个支持。

为什么第一个测试套件会成功?也许它是用纯ES5编写的(没有ES6 / TS类,接口等)。

我确实从此repo https://github.com/mmanela/chutzpah/tree/master/Samples/Compilation/TypeScript

设置了chutzpah对typescript的支持

基本上,简而言之:

  1. 创建一个将TS转换为ES5的compile.bat。通常 - 带或不带tsconfig.json的tsc.exe
  2. 添加“编译”部分,如https://github.com/mmanela/chutzpah/blob/master/Samples/Compilation/TypeScript/chutzpah.json
  3. 中所示

    每次运行chutzpah.console.exe

    时,都应将TS转换为ES5