【发布时间】:2017-04-22 13:54:31
【问题描述】:
我在 Visual Studio 中的所有测试都失败了。它们由 VS Ms 测试运行器执行。
问题是即使在项目中引用了 dll 并将它们的本地复制设置为 True,但它们并没有被复制到 Ms 测试运行器调试文件夹。
我正在使用部署设置为 true 的测试设置文件。
当我运行测试时,Ms test runner 创建了一个 TestResults 文件夹并将 Debug 文件夹的内容复制到 TestResults/out 文件夹中。然而,并非所有的 dll 都被复制过来。就好像 MS 测试运行器只复制选择性 dll 而不是第三方库。
然后测试失败,无法找到所需的组件。当我使用 nunit 或将测试作为控制台应用程序运行时,它们就可以工作了。 同样在测试设置文件中,我还通过将部署设置为 false 并将程序集位置文件夹设置为我的根目录进行了测试,它们似乎都有效。
我还尝试在我的测试类上使用 Deploymentitem(bin/debug),但这不起作用。
我的问题是: 如何确保当我通过 Ms test runner 运行测试时,调试文件夹中的所有 dll 都被复制到 Testresults 文件夹中?任何指导将不胜感激。
有没有办法强制 ms 测试运行器使用 dll?
【问题讨论】:
-
添加缺少的 .dll 源项目作为测试项目的参考。
-
我无法添加项目,因为它们是第三方 dll,例如 entityframework、unity 等。虽然我已经添加了 dll,但它们仍然没有被复制。就好像 ms 测试运行器试图找到它需要的 dll,然后只有那些被复制到测试结果文件夹中。
标签: c# .net visual-studio unit-testing mstest