无法使用Fakes程序集构建项目

时间:2012-08-31 14:14:45

标签: c# unit-testing microsoft-fakes

我在我的Visual Studio 2012单元测试项目中添加了一个Fakes程序集,对应于我的应用程序项目(被测系统),如Peter Provost's article中所述。但是,由于生成的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设施中存在一个错误。

5 个答案:

答案 0 :(得分:9)

此错误也存在于VS2013中。 Link到MSDN错误。

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

答案 1 :(得分:4)

错误很可能是由假装组件触发的伪造错误造成的。我已将此问题提交给Microsoft。

答案 2 :(得分:4)

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

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

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:0)

你不会相信这一点,但我能够通过简单地在文件中添加新行,删除新行,然后保存实际上未经修改的文件来使伪造再次起作用。在下一次构建之后一切都很好。

让你走的事......嗯......