Использование NUnit для модульного тестирования служб WCF RIA в приложении Silverlight 4

Недавно я попытался использовать шаблон Silverlight NUnit Project (тот, что от Джейми Кэнсдейла, нашел здесь) для проекта Silverlight 4, который использует WCF RIA 1.0. Я вроде уже близко, но все никак не могу заставить его работать.

Вот что я сделал

  1. Создать проект. :)
  2. Измените версию Silverlight на 4.
  3. Установите ссылку служб WCF RIA на мой проект WCF RIA.
  4. Убедитесь, что все ссылки (кроме mscorlib) имеют значение CopyLocal = True.
  5. Попробуйте запустить тесты.

Что случается?

Настройка тестового прибора (содержащая только строку "_context = new MyContext ();") умирает с этим исключением:

1 тест не прошел: SetUp: System.TypeInitializationException: инициализатор типа для MS.Internal.JoltHelper вызвал исключение. ---

Кто-нибудь еще мог использовать этот шаблон для тестирования проектов WCF RIA?


person David Moye    schedule 07.02.2011    source источник


Ответы (1)


Консоль NUnit не поддерживает silverlight. См .: http://greenicicleblog.com/2010/04/27/nunit-for-silverlight-updated/ (Найдите «Есть ли способ запустить их в nunit-console?»)

Вы можете получить порт NUinit на Silverlight из кода Google (по ссылке выше), но тогда вам нужно использовать средство запуска Silverlight Test, как описано в первой ссылке выше. Это нормально для запуска тестов вручную, но бесполезно в сценарии непрерывной интеграции.

Проблема в том, что когда тесты выполняются в консоли NUnit, я считаю, что они выполняются в среде CLR, а не в среде выполнения Silverlight.

Мы успешно использовали NUnit и NCover с некоторым кодом Silverlight, но это потому, что код, который мы тестировали, был совместим с полной .NET CLR.

Это также хорошая статья, в которой описывается модульное тестирование Silverlight с помощью NUnit: http://chris.59north.com/post/Introduction-to-setting-up-automated-unit-testing-in-Silverlight-with-NUnit.aspx

person G. Lombard    schedule 04.03.2011
comment
Чтобы внести ясность, я хотел сказать, что, поскольку вы используете службы RIA, ваш проект требует Silverlight Runtime и несовместим со стандартной .NET CLR, поэтому не будет работать в NUnit. Последняя ссылка, которую я разместил выше, должна помочь вам в правильном направлении. - person G. Lombard; 04.03.2011
comment
Я проверю ссылку в вашем последнем абзаце, но я понял, что шаблон проекта Silverlight NUnit, на который я ссылался, был перекомпилирован с библиотеками Silverlight и будет запускать код Silverlight. Я просто не могу заставить его работать с РИА. - person David Moye; 07.03.2011