2010-06-09 2 views
7

Я получаю эту ошибку при создании нового модульного теста под Visual Studio 2010 с помощью контекстного меню (правая кнопка мыши имени методы -> «Тестировать Unit»):Private Accessor для метода не найдена

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

метод общественность (проверено, что при применении применения фильтра не показывать непубличные методы в диалоговом окне «Сформировать тесты Unit».

Visual Studio создает какие-то .accessor файла автоматически. Мне нужно делать что-нибудь в нем?

Что еще может быть pr oblem?

EDIT (подробнее, что может иметь отношение)

  • Я пытаюсь проверить некоторые классы внутри сайта проекта, хотя они не делают каких-либо связанных с веб-страниц вещи. Это просто старые классы C#.
  • Все мои имена классов доступны внутри модульного тестового класса как ClassName_Accessor. И это заставляет компилятор жаловаться на то, что подпись метода не является правильной.

ответ

0

«Аксессуар» - это класс, который работает как один из классов, участвующих в вашем тесте, но метод тестирования имеет доступ к его закрытым и защищенным методам и полям. В частности, классы доступа используются для тестирования частных и защищенных методов.

Похоже, что существует проблема с аксессуаром, поэтому вы можете попытаться стереть и воссоздать его. Перестройте проект. Затем щелкните правой кнопкой мыши по вашему коду и рядом с тем, где говорится «Создать тесты устройства», должен быть другой вариант, который говорит «Создать частный аксессуар».

+0

Я сделал это «Создать частный аксессуар», и это ничего не меняет. И мне не нужно это делать, потому что все классы и методы являются общедоступными. Также, пожалуйста, проверьте мои изменения, я предполагаю, что я могу только обращаться к именам классов. ClassName_Accessor может иметь какое-то отношение к проблеме. – Farinha

+0

Это странно. Боюсь, что я не могу обслуживать, тогда ... Я не знаю, как у вас может быть проблема, если вы не вызываете непубличные методы в тестовом коде. Создается ли тестовый проект вообще или предотвращается ли ошибка? –

5

Я решил проблему с этим, я отсоединил папку Test во время неудачного слияния с TFS.

Папка для испытаний находится в вашем тестовом проекте и будет содержать файл, названный в честь исходного пространства имен, к которому добавлен «.accessor». Поскольку я отделил папку от моего проекта, я не видел, что файл все еще там, поэтому я выделил тестовый проект и нажал кнопку «Показать все файлы» в обозревателе решений. Когда я наконец нашел файл, я удалил его и повторно создал частный accessor (щелкните правой кнопкой мыши в своем классе и выберите «Generate Private Accessor»).

Итак, если ссылка на Test существует, но не связана с проектом, вы не сможете восстановить частный аксессуар, а Visual Studio не скажет вам, что существует конфликт имен и блокировок файлов.

Смежные вопросы