Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Private Accessor for method is not found

I'm getting this error when generating a new unit test under Visual Studio 2010 using the context menu (right-click the method name -> "Generate Unit Tests"):

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

The method is public (checked that by applying applying a filter to not show non-public methods in the "Generate Unit Tests" dialog.

Visual Studio creates some kind of .accessor file automatically. Do I need to do anything in it?

What else could be the problem?

EDIT (more info that might be relevant)

  • I'm trying to test some classes inside a website project, although they don't do any webpage related stuff. They're just plain old C# classes.
  • All my class names are available inside the unit test class as ClassName_Accessor. And that causes the compiler to complain about the method signature not being correct.
like image 202
Farinha Avatar asked Jun 09 '10 18:06

Farinha


1 Answers

I resolved my problem with this, I had disassociated the Test Reference folder during a botched merge with TFS.

The Test Reference folder lives in your test project and will contain a file named after the source namespace with ".accessor" appended to it. Since I had dissociated the folder from my project I didn't see that the file was still there, so I highlighted the test project and pressed the "Show All Files" button in Solution Explorer. When I finally found the file, I deleted it and re-generated the private accessor (right click in your class and choose "Generate Private Accessor").

So bottom line, if Test Reference exists but is disassociated from the Project you won't be able to regenerate the private accessor and Visual Studio will not tell you that there is a file naming/locking conflict.

like image 200
rwoodford Avatar answered Oct 22 '22 13:10

rwoodford