私有访问器方法未找到

7

在使用Visual Studio 2010的上下文菜单(右键单击方法名 ->“生成单元测试”)生成新的单元测试时,我遇到了以下错误:

Private Accessor for methodName is not found. Please rebuild the containing project or run the Publicize.exe manually.

这个方法是公共的(通过在“生成单元测试”对话框中应用筛选器来检查非公共方法不显示)。

Visual Studio会自动创建某种类型的.accessor文件。我需要在其中做些什么吗?

还有什么其他可能的问题吗?

编辑(更多相关信息)

  • 我正在尝试测试网站项目中的一些类,尽管它们没有做任何与网页相关的事情。它们只是普通的C#类。
  • 在单元测试类中,我的所有类名都可用作ClassName_Accessor。这使得编译器抱怨方法签名不正确。
2个回答

5
我通过以下方法解决了问题,之前在与TFS合并时我已将“测试引用”文件夹取消关联。
“测试引用”文件夹位于你的测试项目中,并包含一个以源命名空间命名、附加“.accessor”后缀的文件。由于我将该文件夹从项目中取消关联,因此我没有发现该文件仍然存在,所以我在“解决方案资源管理器”中选中测试项目并按下“显示所有文件”按钮。最终找到该文件后,我删除了它并重新生成了私有访问器(在你的类上右键单击,选择“生成私有访问器”)。
总之,如果“测试引用”存在但与项目没有关联,则无法重新生成私有访问器,Visual Studio也不会告诉你存在文件名/锁定冲突。

0

“访问器”是一个类,它的工作方式类似于测试中涉及的某些类,但测试方法可以访问其私有和受保护的方法和字段。特别地,访问器类用于测试私有和受保护的方法。

听起来访问器可能存在问题,因此您可能需要尝试擦除并重新创建它。重建项目。然后,在代码上右键单击,接近“创建单元测试”的位置,应该会出现另一个选项,称为“创建私有访问器”。


我已经尝试了“创建私有访问器”的方法,但是它并没有改变任何东西。而且我不应该需要这样做,因为所有的类和方法都是公共的。 另外,请检查我的编辑,我猜我只能访问类名 ClassName_Accessor 可能与问题有关。 - Farinha
很奇怪。恐怕我不能提供服务了...如果你在测试代码中没有调用非公共方法,我不知道你怎么会有问题。测试项目是否被创建了?还是错误阻止了它的创建? - Vivian River

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接