【发布时间】:2016-06-06 17:21:45
【问题描述】:
我在尝试使用我的 chutzpah.json 文件运行 chutzpah.console.exe 时遇到了一些性能问题。对于这个项目,我使用 TypeScript 并将 TypeScript 文件预编译为 .js 文件,然后再运行测试。我拥有的每个测试文件通常都会引用它所依赖的另一个 TypeScript 文件——这让 Visual Studio 很高兴,并且 Chutzpah 扩展也能正常工作。例如,我的 drawerBusiness.spec.ts 文件包含以下参考:
/// <reference path="../../../../app/business/documents/drawerBusiness.ts"/>
我的 chutzpah.json 文件如下:
{
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"Framework": "jasmine",
"TestHarnessReferenceMode": "Normal",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"References": [
{ "Path": "./lib/jquery/jquery.js" },
{ "Path": "./lib/angular/angular.js" },
{ "Path": "./lib/angular-mocks/angular-mocks.js" },
{ "Path": "./lib/jasmine-jquery/jasmine-jquery.js" },
{ "Path": "./lib/underscore/underscore.js" },
{ "Path": "./lib/angular-bootstrap/ui-bootstrap-tpls.js" },
{ "Path": "./tests/dependencies.js" }
],
"Tests": [
{ "Include": "*/tests/specs/*.ts", "ExpandReferenceComments": "true" }
]
}
从上面可以看出,我需要加载一些外部库。我假设这些被加载一次然后用于每个测试?
当我使用纯 JavaScript 时,这种配置速度非常快。它在 Visual Studio 中并通过运行 chutzpah.console.exe 中的测试很快完成。但是,由于我已经切换到 Chutzpah,所以测试要慢得多:
Tests complete: 263
=== 263 total, 0 failed, took 74.64 seconds ===
这些结果在我们的构建机器上更糟,而且它正在超时。似乎每个运行的规范文件之间存在巨大的延迟,我认为这导致了整体缓慢 - 一旦规范文件开始运行,它会在百分之一秒内完成。有没有人知道什么可能配置不正确?
【问题讨论】:
-
经过进一步测试,我什至尝试删除“编译”部分并使用纯 JavaScript 文件,但我仍然遇到速度变慢的情况。我相当肯定为每个文件创建的测试工具会导致问题,并且我相信在升级到支持非 JS 文件的 Chutzpah 版本后会出现减速。但也许我只是在配置上做错了。
标签: performance typescript chutzpah