找不到方法的私有访问器

时间:2010-06-09 18:18:16

标签: unit-testing visual-studio-2010

我在使用上下文菜单在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 个答案:

答案 0 :(得分:5)

我用这个解决了我的问题,在与TFS的混淆合并期间,我已经取消了与 Test Reference 文件夹的关联。

Test Reference 文件夹位于测试项目中,并包含一个以源名称空间命名的文件,并附加“.accessor”。由于我从我的项目中分离了文件夹,我没有看到文件仍然存在,所以我突出显示了测试项目并按下了解决方案资源管理器中的“显示所有文件”按钮。当我最终找到该文件时,我将其删除并重新生成私有访问者(在您的班级中右键单击并选择“生成私有访问者”)。

如此底线,如果测试参考存在但与项目取消关联,您将无法重新生成私有访问者,Visual Studio也不会告诉您存在文件命名/锁定冲突。

答案 1 :(得分:0)

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

听起来访问者存在问题,因此您可能希望尝试删除并重新创建它。重建项目。然后,右键单击代码并在“创建单元测试”附近,应该有另一个选项“创建私有访问者”。