Можно удалить модель в Папке приложения, если Вы видите эту ошибку (Модель Уже Существует!)
К сожалению, из-за прозрачной модели безопасности (т. Е. Все приложения изолированы) в среде выполнения Silverlight это непростая задача. Традиционный инструментарий покрытия кода .NET изменяет базовую сборку, вставляя вызовы P / Invoke в инструменты сбора покрытия.
В результате такие инструменты, как инструментальный инструмент покрытия кода Visual Studio 2008, не работают с Silverlight.
Для этого в Silverlight вам потребуется разработать специальную программу инструментовки, а также способ сбора и представления этих данных.
В группе Silverlight мы разработали частичное решение, которое может сделать это для некоторых людей, но не готово для релиз. Поищите его когда-нибудь в Silverlight Toolkit, возможно.
Извините, что я не знаю ответа для вас сегодня.
Я спросил об этом у службы поддержки NCover.
Мой вопрос был:
Допустим, я создаю класс silverlight библиотека (Проект -> Новый проект ...) из Visual Studio. В этом классе библиотека у меня несколько классов и я используйте шаблон NUnit silverlight для проект, содержащий модульные тесты для моя библиотека классов silverlight:
http://weblogs.asp.net/nunitaddin/archive/2008/05/01/silverlight-nunit-projects.aspx
Я прекрасно могу запускать модульные тесты (даже на сервере сборки мы используя msbuild и TFS), но я не могу получить данные о покрытии кода для них, используя стандартные варианты покрытия кода которые доступны в Visual Studio.
Может ли NCover показать покрытие кода для мои библиотеки классов Silverlight?
Ответ, который я получил:
Пока вы тестируете библиотеки классов с помощью NUnit, вы сможете охватить их с помощью NCover. Если вы протестируете их через веб-браузер с помощью такого инструмента, как Selenium, тогда вы не сможете получить покрытие.
Теперь мне интересно, пытался ли кто-нибудь из команды silverlight использовать NCover + NUnit? Конечно, у MS есть своя собственная структура модульного тестирования, так что в «бизнес-смысле» это выглядело бы не так хорошо :) Но как насчет того, чтобы просто проверить, работает ли это.
Согласно NCover FAQ он может охватывать silverlight:
[ http://docs.ncover.com/ref/3-0/frequent-asked-questions/#q05] [1]
Пока я не нашел никакой информации, действительно ли это работает, например, для библиотек классов silverlight. Странно, что если ncover работает, то о нем нет информации (посты в блогах и т.д.). Все ли используют путь «Создать стандартную библиотеку .NET и связать файлы с ней для получения данных о покрытии» при тестировании кода Silverlight?
Когда дело доходит до других решений (даже коммерческих), мой поиск в Google не дал никаких результатов.
Ответ на данный момент - нет (если Джефф Уилкокс говорит «нет», то нет ;-)).
Я попросил NCover поддержать этот вопрос некоторое время назад ( об их FAQ re Silverlight ):
... Я использую Silverlight 2.0 и, как мне кажется, он может работать только в браузере. Так вы говорите о SL3 или я что-то пропустил?
Я полагаю, что SL3 скоро будет RTM-версия. Если я обновлюсь, сможет ли мое приложение выйти из браузера (и, следовательно, использовать NCover) автоматически, или мне придется для этого изменить его?
И вот ответ, который я получил:
FAQ является точным в своем нынешнем виде, однако формулировка несколько сбивает его с толку. Под темой часто задаваемых вопросов подразумевается, что NCover не поддерживает закрывающий код Silverlight (v1, v2 или v3) при использовании аргумента // iis, потому что тогда он работает на собственной среде CLR.
Однако, код программной части и поддерживающие классы приложения Silverlight (v1 или v2 или v3) действительны для C # / VB, поэтому вы можете писать модульные тесты для этой части приложения и запускать эти тесты с помощью NUnit / MSTest / Gallio / xUnit / и т. д. и вы получите покрытие этой части.
Мы еще не исследовали, может ли NCover собирать данные о Silverlight v3, когда он выполняется вне браузера, но я полагаю, что мы не сможем этого сделать. Однако как только мы узнаем наверняка, мы отметим это в документации.
Я понял, что это означает, что на самом деле приложения Silverlight не поддерживаются - вы должны «Создать стандартную библиотеку .NET и связать файлы с ней, чтобы получить данные о покрытии ».
так что вы можете написать модульные тесты для этой части приложения и запустить эти тесты с помощью NUnit / MSTest / Gallio / xUnit / и т. д., и вы получите покрытие этой части.Мы еще не исследовали, может ли NCover собрать покрытие на Silverlight v3, когда он запускается вне браузера, но я думаю, что мы не сможем этого сделать. Однако как только мы узнаем наверняка, мы отметим это в документации.
Я понял, что это означает, что на самом деле приложения Silverlight не поддерживаются - вы должны «Создать стандартную библиотеку .NET и связать файлы с ней, чтобы получить данные о покрытии ».
так что вы можете написать модульные тесты для этой части приложения и запустить эти тесты с помощью NUnit / MSTest / Gallio / xUnit / и т. д., и вы получите покрытие этой части.Мы еще не исследовали, может ли NCover собрать покрытие на Silverlight v3, когда он запускается вне браузера, но я думаю, что мы не сможем этого сделать. Однако как только мы узнаем наверняка, мы отметим это в документации.
Я понял, что это означает, что на самом деле приложения Silverlight не поддерживаются - вы должны «Создать стандартную библиотеку .NET и связать файлы с ней, чтобы получить данные о покрытии ».
Чтобы получить результаты покрытия кода, выполните следующую процедуру:
-Добавьте новый тестовый проект в решение
-Удалите все существующие классы (тест базы данных, заказанный тест и т. Д.), Чтобы остался только класс модульного теста (UnitTest1).
-Удалите все бесполезные комментарии и грубый код из тестового класса, чтобы у вас остался только тестовый метод (без комментариев, даже без TestContext)
-Добавьте ссылку на версии Silverlight «System.dll», «System.Windows.dll» в тестовый проект. (обычно находится в папке «C: \ Program Files \ Microsoft SDKs \ Silverlight \ v2.0 \ Reference Assemblies \» (удалите существующую ссылку на system.dll, если вам нужно сначала)
-Добавить ссылку на тестируемый проект
-Теперь вы можете писать тесты для объектной модели (стандартные классы)
Ура,