2010-06-09 5 views
7

estoy recibiendo este error cuando se genera una nueva prueba de la unidad en Visual Studio 2010 mediante el menú contextual (clic derecho en el nombre del método -> "Generar pruebas unitarias"):Accessor privada para el método no se encuentra

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

el método es público (comprobado que mediante la aplicación de aplicar un filtro para no mostrar los métodos no públicos en el diálogo "Generar pruebas unitarias".

Visual Studio crea una especie de .accessor archivo automáticamente. ¿necesito hacer algo en ella?

¿Qué otra cosa podría ser la pr ¿Oblem?

EDITAR (más información que pueda ser relevante)

  • Estoy intentando probar algunas clases dentro de un proyecto de página web, a pesar de que no hacen ningún material relacionado con la página web. Son simplemente antiguas clases de C#.
  • Todos mis nombres de clase están disponibles dentro de la clase de prueba de la unidad como ClassName_Accessor. Y eso hace que el compilador se queje de que la firma del método no es correcta.

Respuesta

0

El "descriptor de acceso" es una clase que funciona como una de las clases involucradas en su prueba, pero el método de prueba tiene acceso a sus métodos y campos privados y protegidos. En particular, las clases de acceso se usan para probar métodos privados y protegidos.

Parece que hay un problema con el programa de acceso, por lo que es posible que desee intentar borrarlo y volver a crearlo. Reconstruye el proyecto. Luego, haga clic con el botón derecho del mouse en su código y cerca de donde dice "Crear pruebas unitarias", debería haber otra opción que diga "Crear un usuario privado".

+0

He hecho esa cosa de "Crear Acceso Privado", y no cambia nada. Y no debería necesitar hacerlo porque todas las clases y métodos son públicos. Además, compruebe mis ediciones, supongo que el hecho de que solo puedo acceder a los nombres de las clases ClassName_Accessor podría tener algo que ver con el problema. – Farinha

+0

Eso es extraño. Me temo que quizás no sirva, entonces ... No sé cómo podrías tener un problema si no estás llamando a métodos no públicos en el código de prueba. ¿El proyecto de prueba se crea en absoluto, o lo evita el error? –

5

Resolví mi problema con esto, desasocié la carpeta Referencia de prueba durante una combinación fallida con TFS.

La carpeta Referencia de prueba vive en su proyecto de prueba y contendrá un archivo con el nombre del espacio de nombres de origen con ".accessor" adjunto. Como había desconectado la carpeta de mi proyecto, no vi que el archivo aún estuviera allí, así que destaqué el proyecto de prueba y presioné el botón "Mostrar todos los archivos" en el Explorador de soluciones. Cuando finalmente encontré el archivo, lo eliminé y volví a generar el acceso privado (haga clic derecho en su clase y elija "Generar acceso privado").

Por lo tanto, en resumen, si la Referencia de prueba existe pero está desasociada del Proyecto, no podrá regenerar el acceso privado y Visual Studio no le informará que existe un conflicto de nomenclatura/bloqueo de archivos.

Cuestiones relacionadas