【问题标题】:MSTest Visual Studio 2015: The assembly or module 'xxxxxxx' directly or indirectly referenced by the test container not found [duplicate]MSTest Visual Studio 2015:未找到测试容器直接或间接引用的程序集或模块“xxxxxxx”[重复]
【发布时间】:2018-04-23 09:21:38
【问题描述】:

当作为 CI 构建和测试的一部分在我们的构建服务器上执行 MSTest 时,我看到此警告的三个实例。这导致我们所有的单元测试在服务器上都失败了。

警告:测试运行部署问题:测试容器“pathToOur.test.dll”直接或间接引用的程序集或模块“MySql.Data”不是找到了。

警告:测试运行部署问题:程序集或模块“Npgsql” 被测试容器直接或间接引用 'pathToOur.test.dll' 没有找到。

警告:测试运行部署问题:程序集或模块 'System.Data.SQLite' 被测试直接或间接引用 找不到容器“pathToOur.test.dll”。

我在我们的解决方案中找不到引用这三个组件中的任何一个的任何地方。它们在构建服务器上不存在,所以我不能将它们添加到 GAC。此外,它们不存在于我的本地机器中,它构建解决方案并毫无问题地运行所有测试。

在追踪这些参考和/或如何防止它们影响 CI 构建和测试方面的任何帮助或建议将不胜感激。

【问题讨论】:

  • 看看这个,看看有没有适合你的建议stackoverflow.com/questions/5481120/…
  • @Nkosi - 谢谢你,但没有任何帮助。我的问题是,我在解决方案中找不到任何引用这些组件的内容,因此对 MSTest 正在寻找它们感到困惑。我无法将它们添加到 GAC,因为我没有它们。同样,它们不能标记为 DeploymentItem,因为它们不存在于要部署的服务器上。我真的很想知道是什么实际持有对这些组件的引用,因为无论它是什么,都可能配置错误。我不认为我应该将未使用的 dll 添加到我的解决方案中,只是为了满足一些不可靠的引用。
  • 在项目文件中搜索任何提及这些名称的内容,看看是否找到,
  • @Nkosi - 不,项目或解决方案文件中没有任何内容。已经完成了所有这些。但是,在我的解决方案中对所有文件运行 FINDSTR 搜索会在 Elmah.dll 中找到一些命中(我们使用 Elmah 登录我们的应用程序。)所以也许这就是引用的来源。
  • @MichaelFreidgeim 您今天是否正在寻找类似的 GAC 问题? ;)

标签: unit-testing dll visual-studio-2015 continuous-integration mstest


【解决方案1】:

在我看来,这似乎是一种 hack,但它已经为我解决了这个问题。

已确定 Elmah.dll 包含与 MSTest 未能找到的所有三个组件相对应的文本。我从Elmah Downloads 页面中提取了缺少的 dll 的二进制文件。

我将它们放到我们构建服务器上的一个文件夹中,然后将它们全部添加到 GAC。

我们解决方案中的自动化单元测试随后作为后续 CI 代码检查操作的一部分执行,没有出现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2015-06-16
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多