当我们的构建服务器上执行MSTest作为CI构建和测试的一部分时,我看到了此警告的三个实例。这导致我们所有的单元测试都在服务器上失败。
警告:测试运行部署问题:程序集或模块' MySql.Data '由测试容器' pathToOur.test.dll '直接或间接引用没找到。
警告:测试运行部署问题:程序集或模块' Npgsql ' 由测试容器直接或间接引用 ' pathToOur.test.dll '没找到。
警告:测试运行部署问题:程序集或模块 '的 System.Data.SQLite '由测试直接或间接引用 container' pathToOur.test.dll '没找到。
我在我们的解决方案中找不到引用这三个组件中的任何一个的任何地方。它们不存在于构建服务器上,因此我无法将它们添加到GAC中。此外,它们不在我的本地机器中,它可以构建解决方案并运行所有测试而没有任何问题。
任何有关追踪这些参考资料和/或如何防止它们影响CI构建和测试的帮助或建议都将不胜感激。
答案 0 :(得分:1)
在我看来,这似乎是一种黑客行为,但它已经为我解决了这个问题。
确定Elmah.dll包含的文本与MSTest未能找到的所有三个组件相对应。我从Elmah Downloads页面下载了丢失的dll的二进制文件。
我将它们放到我们的构建服务器上的一个文件夹中,然后将它们全部添加到GAC。
我们的解决方案中的自动化单元测试然后在没有错误的情况下执行,作为后续CI代码检查操作的一部分。