Bla*_*ell 20 .net asp.net visual-studio vs-unit-testing-framework visual-studio-2017
当试图打开旧的解决方案时,VS2017有一个旧的单元测试项目在构建时给我一个问题.
构建此测试项目时,我不断收到以下错误:
无法加载文件或程序集'file:/// C:\ Projects\MyProj\Test\DAL\UnitTestProj\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll'或其依赖项之一.该系统找不到指定的文件.
我检查了项目的引用,它似乎是引用Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll.此外,没有代码错误.我怎么能弄清楚它是否是它无法找到的依赖项之一?
bri*_*ins 44
我有一个The "BuildShadowTask" task failed unexpectedly与VS2010最初开发的项目有类似的问题(附加消息),并且花了最后几个小时来学习构建过程的另一个传统方面.
您很可能正在处理私有访问者文件(.accessor),这些文件在VS2012中已弃用(原始源为404).VS2010团队宣布他们不再致力于这些功能,这预示着这一点.
你也有可能只是处理错误的引用错误版本的UnitTestFramework,但NuGet恢复应该解决这个问题.如果没有,请参阅此GitHub线程以获取可能的修复(手动将ref更改为公用文件夹),或移至新的MSTest.TestAdapter和MSTest.TestFramework包(请参阅MSDN支持线程).
.csproj并将项目引用更改<Shadow Include="Test References\namespace.accessor" />为<None Include="Test References\namespace.accessor" />(Shadow=> None)..accessor从单元测试项目的Test References文件夹中删除所有文件.理想情况下,您还需要重写单元测试以删除对私有方法的引用,方法是重新构建单独的关注点或将属性更改为internal使用"friend" InternalsVisibleToAttribute.
对于那些因某种原因需要继续支持私有方法测试的人,同一篇文章对逻辑问题提出了以下建议"What is available for me then?":
对于那些希望继续测试内部API的人,您有三种选择:
- 使用Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject类来帮助访问代码中的内部和私有API.这可以在Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll程序集中找到.
- 创建一个反射框架,该框架能够反映您的代码以访问内部或私有API.
- 如果您尝试访问的代码是内部代码,则可以使用InternalsVisibleToAttribute访问API,以便您的测试代码可以访问内部API.
但是,对于由语言团队添加的新功能而言,代码生成没有任何良好的替代品.您可以创建TestMethod存根,然后删除内部代码.你只需要保留存根本身.
进一步阅读/来源帮我拼凑了这些:
右键单击项目引用文件夹。添加参考 > 装配体 > 扩展。选中 Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.1,并取消选中任何旧版本。
| 归档时间: |
|
| 查看次数: |
14723 次 |
| 最近记录: |