性能问题 - Chutzpah Console.exe 和 TypeScript
Performance Issues - Chutzpah Console.exe and TypeScript
我运行正在尝试使用我的 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 ===
这些结果在我们的构建机器上更糟糕,而且它正在超时。每个规格文件之间似乎有一个巨大的延迟 运行,我认为这是导致整体缓慢的原因 - 一旦规格文件开始 运行ning,它会在百分之几的时间内完成一秒。有没有人知道什么可能配置不正确?
您可以尝试以下几点来帮助查明这个问题:
您可以尝试在 chutzpah.json 文件中启用 "EnableTestFileBatching": true
看看是否有帮助吗?如果您有许多测试文件,可能会很慢,并且此设置告诉 chutzpah 将它们分批处理成一个工具。
您能否提供 /trace 选项的输出以便我可以看到所有时间?
你能提供一个我可以在本地 运行 的复制吗?
我运行正在尝试使用我的 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 ===
这些结果在我们的构建机器上更糟糕,而且它正在超时。每个规格文件之间似乎有一个巨大的延迟 运行,我认为这是导致整体缓慢的原因 - 一旦规格文件开始 运行ning,它会在百分之几的时间内完成一秒。有没有人知道什么可能配置不正确?
您可以尝试以下几点来帮助查明这个问题:
您可以尝试在 chutzpah.json 文件中启用
"EnableTestFileBatching": true
看看是否有帮助吗?如果您有许多测试文件,可能会很慢,并且此设置告诉 chutzpah 将它们分批处理成一个工具。您能否提供 /trace 选项的输出以便我可以看到所有时间?
你能提供一个我可以在本地 运行 的复制吗?