【问题标题】:Chutzpah integration with TFS 2012Chutzpah 与 TFS 2012 集成
【发布时间】:2023-04-03 14:12:01
【问题描述】:

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

在高层次上,实际问题是构建代理上下文中的 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 构建服务器上运行,以便我们比较配置。

【问题讨论】:

  • 您是否尝试过使用 Chutzpah Nuget 包 (nuget.org/packages/Chutzpah) 而不是将程序集添加到自定义程序集路径?
  • @Betty 我试了一下以防万一,但我不明白它是如何工作的 - 构建代理上的测试运行程序如何在该设置中获得 Chutzpah 测试适配器的句柄?
  • 不完全确定,但我知道即将推出的 TFS 更新 1 旨在支持这种情况 - 来自 blogs.msdn.com/b/bharry/archive/2012/10/29/… - “使用 Nuget 在 TFS 构建机器上更轻松地安装单元测试适配器”不能立即查找有关它的更多信息。
  • 看来 chutzpah nuget 包无论如何都不包含测试运行程序。如果您可以等待,那么我建议您等待 TFS2012 更新 1 并等待 Chutzpah Test Runner 开发人员支持新方法。
  • 你最后搞定了吗?更新 1 现已发布,尽管我还没有看到任何有关旨在简化此操作的更改的信息。我确实想到的最后一件事是仔细检查在测试运行对话框中选择了哪个测试运行器。

标签: tfs chutzpah


【解决方案1】:

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

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

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

我希望这会有所帮助。

【讨论】:

  • 这没有用,甚至与错误信息的细节无关。您在赏金到期前 90 分钟发布了如此无用的答案,这让我认为您是在为积分而战,而不是真正提供帮助。
  • 我试图通过查看您提供的错误来帮助您解决问题。这只是帮助。你怎么知道它与你的问题无关?我不是为了积分。很抱歉,如果您采取这种方式。
  • 另外,您是否可以在构建机器上编译 Chutzpah 代码库。项目源可以帮助您找到解决方案。你能在其他本地机器上让它工作吗?
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    Javascript Unit Tests on Team Foundation Service with Chutzpah

    【讨论】:

    • 链接已损坏。根据 SO 礼仪,请在您的答案中发布详细信息(链接到来源很好,但仍然请发布实际答案)。谢谢。
    猜你喜欢
    • 2014-08-14
    • 1970-01-01
    • 2014-04-24
    • 2013-11-13
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 2019-01-12
    相关资源
    最近更新 更多