MSTest 找不到程序集
我正在使用 MSTest
并使用命令 mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll
这是输出,
运行存在以下问题: 警告:测试运行部署问题: 组件或模块 '微软.实践。直接棱镜 或由测试间接引用 找不到容器“test.dll”。 警告:测试运行部署问题: 组件或模块 直接“Project.Common.dll”或 测试间接引用 找不到容器“test.dll”。 警告:测试运行部署问题: 组件或模块 直接“Project.Infrastruct.dll” 或由测试间接引用 找不到容器“test.dll”。 警告:测试运行部署问题: 组件或模块 '微软.实践。直接棱镜 或由测试间接引用 找不到容器“test.dll”。
我该怎么做才能让 MSTest 运行良好。
I was using MSTest
and i use command mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll
and this is the output,
Run has the following issue(s):
Warning: Test Run deployment issue:
The assembly or module
'Microsoft.Practices. Prism' directly
or indirectly referenced by the test
container 'test.dll' was not found.
Warning: Test Run deployment issue:
The assembly or module
'Project.Common.dll' directly or
indirectly referenced by the test
container 'test.dll' was not found.
Warning: Test Run deployment issue:
The assembly or module
'Project.Infrastructure.dll' directly
or indirectly referenced by the test
container 'test.dll' was not found.
Warning: Test Run deployment issue:
The assembly or module
'Microsoft.Practices. Prism' directly
or indirectly referenced by the test
container 'test.dll' was not found.
What can i do so MSTest can run well.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以将 Prism 文件安装在构建服务器的 GAC 中。
You can install the Prism file in the GAC of your build server.
所有未直接在测试中使用的程序集都不会复制到测试文件夹中。因此,这些测试方法应该用如下属性修饰:
这可以解决问题,而无需将程序集添加到 GAC。
All assemblies that are not used directly in test will not be copied to test folder. Therefor, those test methods should be decorated with attribute like:
This solves the problem without adding the assembly to the GAC.
好的。 DeploymentItem 是解决此问题的一种方法。然而,DeploymentItem 有点脆弱。
这是我修复它的方法。
“当前目录”必须与 DeploymentItem 对齐。我发现的最佳折衷方案是将当前目录设置为 .sln 文件所在的位置。
这是我的文件夹结构。
MyTestClass.cs
“技巧”是制作 CD(更改目录)到包含 .sln 的文件夹。
现在,由于“当前目录”(CD 的结果)位于“C:\SomeRootFolder\”,因此 DeploymentItem 相对路径可以正常工作。
吉米尼蟋蟀……这有点疯狂。
请注意,Paul Taylor 在这里回答
正在运行使用自定义程序集基目录的命令行的 MsTest
对我不起作用。
Ok. The DeploymentItem is a way to fix this. However, DeploymentItem is a little fragile.
Here is how I fixed it.
The "current directory" has to line up with the DeploymentItem. The best compromise I found would be to set the current directory to where the .sln file is.
Here is my folder structure.
MyTestClass.cs
The "trick" is to do a CD (change directory) to the folder that houses the .sln.
Now because the "current directory" (the result of the CD) is at "C:\SomeRootFolder\", the DeploymentItem relative path works correctly.
Jimminy Crickets.......that is a little nutsy.
Note, the Paul Taylor answer here
Running MsTest from the command line with a custom assembly base directory
did not work for me.
最简单的方法。
只需添加
到您的代码(在测试方法的起点)
在新添加的代码中添加断点,查看
value
变量的路径是什么。继续测试过程,一切成功后导航到
values
变量的文件夹。您可能会看到该文件夹内的所有 dll。
只需复制它们和过去的软件,然后使用 mstest 命令行工具执行项目 dll 即可。
easiest way.
Just add
to your code (at the start point of your test method)
Add a breakpoint to the newly added code and check what is the path of
value
variable.continue the test process and after everything get success navigate to the folder of
values
variable.You might see all the dlls inside the folder.
Just copy them and past ware ever you want and execute the project dll using mstest command line tool.