5

我的团队正在尝试将 Chutzpah 集成到 TFS 2012 构建过程中。我们使用这篇博文作为我们的起点。

在高层次上,实际问题是构建代理上下文中的 Visual Studio 测试运行程序根本没有找到 Chutzpah 挂钩。因此,虽然我们可以定义**\*.js为测试源,但实际上没有找到并初始化 Chutzpah 引导程序,测试运行程序不会对这些文件做任何事情。

在更详细的层面上,当我们检查日志以加载构建控制器的自定义程序集时,我们会收到三个相关消息:

Summary: There were 0 failures, 2 errors and 1 warnings loading custom activities and services.
Error: Method 'ToXml' in type 'Chutzpah.VS2012.TestAdapter.ChutzpahAdapterSettings' from assembly 'Chutzpah.VS2012.TestAdapter, Version=2.2.0.171, Culture=neutral, PublicKeyToken=1ca802c37ffe1896' does not have an implementation.
Error: API restriction: The assembly '...\AppData\Local\Temp\VSTFSBuild\8c8e9402-1169-4782-99a9-ce42f83be8f0\A1288811191\Chutzpah\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.
Warning: Could not load file or assembly '...\AppData\Local\Temp\VSTFSBuild\8c8e9402-1169-4782-99a9-ce42f83be8f0\A1288811191\Chutzpah\phantomjs.exe' or one of its dependencies. The module was expected to contain an assembly manifest.

除了这些信息,我们或多或少地陷入困境。我很想听听有人真的让 Chutzpah 在独立的 2012 构建服务器上运行,这样我们就可以比较配置。

4

3 回答 3

1

错误:API 限制:程序集'....

表示 TFS 在两个不同的位置查找 dll。您可以将模式更改为检查并查看是否有 \*\* test .dll 作为为任何测试程序集设置的值,然后将其更改为 *test*.dll。这将防止它多次加载。

另一个错误可能是因为没有重建测试项目。尝试重新构建测试项目。

我希望这有帮助。

于 2012-11-15T17:36:36.770 回答
1

实际上 Software Carpenter 有一点,我相信可能发生的事情是您对普通单元测试的测试规范可能是test .dll(或类似的东西),这意味着 Microsoft.VisualStudio.TestPlatform.ObjectModel.dll 作为单元测试 dll 加载,然后 TFS 在尝试运行 chutzpah 测试时再次尝试加载它。

尝试禁用正常的单元测试规范并查看它是否有帮助,如果有帮助,则将您的规范更改为不包含 TestPlatform.ObjectModel.dll 的其他内容 (*test.dll)。

来源:我在尝试构建一个名称为 Test 的项目时遇到了同样的错误。

于 2012-12-08T00:51:23.947 回答
1

该讨论也在 Codeplex 上进行。也许那里可以提供一些帮助。

使用 Chutzpah 对 Team Foundation 服务进行 Javascript 单元测试

于 2013-01-30T14:27:30.787 回答