13

我已经在我的 Visual Studio 2012 单元测试项目中添加了一个 Fakes 程序集,对应于我的应用程序项目(被测系统),如Peter Provost 的文章中所述。但是,由于生成的 Fakes 代码中存在未解析的类型引用,该项目将不再构建:

The type or namespace name 'FieldDefinition' does not exist in the namespace 'bc::ProductStudio' (are you missing an assembly reference?)
[C:\Users\arvek\Projects\Project\Project.Tests\obj\Debug\Fakes\bc\f.csproj]
C:\Users\arvek\Projects\Project\Project.Tests\f.cs

这里出了什么问题?据我所知,这应该可以正常工作,所以在我看来,Fakes 设施中存在错误。

4

5 回答 5

9

这个错误也存在于 VS2013 中。链接到 MSDN 错误。

解决方法:从 FakeAssemblies 文件夹中删除文件 .messages。

于 2014-04-21T04:46:23.967 回答
4

该错误很可能是由于伪造的程序集触发的 Fakes 中的错误。我已将问题提交给 Microsoft。

于 2012-09-04T16:35:53.747 回答
4

可以帮助您诊断问题的一种选择是为您的假货打开诊断。在您的 .fakes 文件上。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011" Diagnostic="true" Verbosity="Noisy">

此外,请确保您的“MSBuild 项目构建输出详细程度”设置为诊断。您可以在工具 -> 选项 -> 项目和解决方案 -> 构建和运行中找到它。

重建你的测试项目,现在你的输出窗口应该充满信息,包括任何失败的假货

于 2012-12-10T05:06:33.133 回答
4

删除Fakes文件夹将解决此问题。

于 2016-10-26T08:32:11.860 回答
0

你不会相信这一点,但我只需在文件中添加一个新行,删除该新行,然后保存实际上是未修改的文件,就可以让假货再次工作。在下一次构建之后,一切都很好。

让你走的东西……嗯……

于 2017-05-15T05:11:50.560 回答