【问题标题】:TFS 2010 Unit Test fails on build machine when calling System.Reflection.Assembly.Load调用 System.Reflection.Assembly.Load 时,TFS 2010 单元测试在构建机器上失败
【发布时间】:2012-11-02 14:50:23
【问题描述】:

使用 TFS 2010 和 2010:

在构建机器上启动构建时,单元测试失败是在尝试执行 System.Reflection.Assembly.Load 时出现 System.IO.FileNotFoundException。

如果我在本地运行这些测试,它们可以正常工作。此外,如果我远程进入构建机器并手动打开解决方案,单元测试将正常工作。

正在加载的程序集是包含在解决方案中的项目,并被单元测试项目引用。它用于本地化,这就是我们要进行 assembly.load 的原因。

构建服务使用的构建机器上是否存在导致此问题的临时位置?有什么我需要配置的,以便构建服务可以找到程序集吗?

谢谢

【问题讨论】:

  • 在开始之前,请确保您尝试加载的组件已经构建到您尝试加载它的位置。绝对路径也可能是个问题。
  • 单元测试项目依赖于该项目(相对项目路径引用),因此应在执行单元测试之前构建“缺失”程序集。当构建服务运行时,构建成功,然后单元测试运行。我如何判断 dll 是否已创建,我假设它是。

标签: c# .net tfsbuild


【解决方案1】:

对不起,误导性评论是您的单元测试失败,而不是您的构建

在尝试执行负载的测试中,您是否使用部署属性对其进行了标记 例如

[TestMethod]
[DeploymentItem("SomeLibrary.dll")]
public void TestSomeStuff()
{
}

我遇到了同样的问题,我的测试在我的机器上运行良好,但没有属性在我们的 buold 服务器上失败,它们没有被移动到所有测试对象所在的文件夹中。

【讨论】:

    猜你喜欢
    • 2010-11-28
    • 2012-12-13
    • 1970-01-01
    • 2011-10-05
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多