Chutzpah与TFS 2012整合

时间:2012-11-01 19:28:32

标签: tfs tfs2012 chutzpah

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

在较高的层面上,实际问题是构建代理上下文中的Visual Studio Test Runner根本没有找到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构建服务器上运行的人,以便我们可以比较配置。

3 个答案:

答案 0 :(得分:1)

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

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

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

我希望这会有所帮助。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

Javascript Unit Tests on Team Foundation Service with Chutzpah