Jasmine 单元测试在 Visual Studio 2012 测试资源管理器中多次显示

Jasmine Unit Tests displaying multiple times in Visual Studio 2012 Test Explorer

我正在使用 jasmine 为 angularjs 应用程序编写单元测试,测试 运行ner 是 chutzpah。此应用程序的所有代码均使用打字稿编写,并且 chutzpah.json 文件配置为正确编译 .ts 文件。我使用的编辑器是 Visual Studio 2012 Premium,当然还有 chutzpah 测试适配器和上下文菜单扩展。下图展示了同一个测试如何多次出现:

我添加了多个屏幕截图,因为每个屏幕截图的来源对于测试的每个引用都是不同的。

需要注意的一件事是,测试是在一个名为 configurationServiceSpec.ts 的文件中为名为 ConfigurationService 的 angular 服务编写的,并被注入到整个应用程序的其他组件中。

angular.module('ConfigurationService', []);

虽然列表中的每个测试在测试资源管理器中的状态都是通过,但我发现当测试在 TFS 构建操作期间 运行 时,5 个测试中的 4 个 "copies"测试通过而 1 失败。任何见解将不胜感激。谢谢

你的chutzpah.json错了。下面更新的应该可以正常工作。由于你有一个编译配置集,你不需要引用 .js 文件,相反你应该引用 .ts 文件并让 Chutzpah 找到匹配的 .js 文件。

{ "Compile":{ "Mode": "External", "Extensions": [".ts"], "ExtensionsWithNoOutput": [".d.ts"]<br> }, "References":[ { "Path": "../Scripts/jquery-1.11.0.js" }, { "Path": "../Scripts/angular.js" }, { "Path": "../Scripts/angular-route.js" }, { "Path": "../Scripts/angular-mocks.js" }, { "Path": "../Scripts/angular-animate.js" }, { "Path": "../Scripts/angular-cookies.js" }, { "Path": "../Scripts/angular-resource.js" }, { "Path": "../Scripts/angular-sanitize.js" }, { "Path": "../Scripts/angular-ui.min.js" }, { "Path": "../Scripts/angular-ui/ui-bootstrap.js" }, { "Path": "../Scripts/typings/_allReferences.js" }, { "Path": "service", "Include": "*.ts" }, { "Path": "app.ts" } ], "Tests":[ { "Path": "module1", "Include": "*Spec*.ts" }, { "Path": "service", "Include": "*Spec*.ts" } ]<br> }