Модульное тестирование Silverlight [закрыто]


Я искал эту информацию и видел похожие вопросы, но не тот, который соответствует очень близко к этому. Если я что-то пропустил, прошу прощения. Я надеялся, что ты сможешь указать мне направление. Я работаю над проектом на основе Silverlight, и моя команда, наконец, переходит к реализации модульного тестирования. Я и еще один член моей команды отвечаем за рекомендации платформы модульного тестирования для проекта. Наши основные критерии:

  1. Проект содержит стандарт Веб-сервисы ASMX .NET и интерфейс Silverlight. Мы бы предпочли, если это вообще возможно, поддерживать одни и те же атрибуты теста повсюду, а не использовать один набор для тестов Silverlight и другой для другого кода.

  2. Интеграция с VS 2008 довольно важна. Мы хотели бы сохранить все это под одной крышей, если это возможно. Мы были бы счастливы просто иметь возможность запустить модульный тест от VS.

  3. Автоматизированное тестирование сборки / проверки. В настоящее время мы работаем в полностью неавтоматизированная среда VS 2008/VSS 2005. Мы находимся в процессе преобразования в SVN для управления версиями, и наш корпоративный офис будет помогать нам в использовании MSBuild для автоматизации процесса сборки. Мы, конечно, предпочли бы иметь возможность максимально интегрироваться в эту среду. Я пока не уверен в деталях этого процесса, так как не участвую в нем напрямую. Если вам понадобится более подробная информация, пожалуйста, дайте мне знать, и я посмотрю, что смогу найти из.

На данный момент мы с моим коллегой рассматриваем NUnit (наряду с опциями possble Silverlight) и MSTest в сочетании с платформой тестирования Silverlight, которую написал Джефф Уилкокс. Хотя стандарт corpoarate-NUnit, они открыты для других вариантов, поскольку нет других команд, выполняющих работу Silverlight.

Я примерно наполовину прочитал книгу Роя Ошерова по модульному тестированию, так что я начинаю чувствовать написание тестов в целом. Я не замужем за мужчиной. конкретная структура, но корпоративная, кажется, наиболее открыта для NUnit или MSTest. Я также хотел бы получить в свои руки хороший учебник MSTest, если это возможно.

Спасибо, что нашли время. Если вам нужна какая-либо другая информация от меня, не стесняйтесь спрашивать.

Ура,

Стив

2 4

2 ответа:

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

Существующие системы модульного тестирования Silverlight менее совершенны, чем официально поставляемые полноценные тестовые платформы для настольной среды .NET, поэтому ваш опыт может отличаться. Поймите, что тестовые решения Silverlight, существующие сегодня (которые на самом деле работают внутри веб-браузера) существуют специально для того, чтобы помочь людям получить охват их кода и компонентов в контексте платформы Silverlight, а не обязательно для быстрой или простой разработки и тестирования на основе тестов, которые можно получить с помощью интегрированных средств Visual Studio.

Изолированная модель безопасности для Silverlight делает многие стандартные инструменты тестирования, которые вы можете ожидать, намного сложнее.

Это также другая платформа, на самом деле, так что может не иметь смысла выполнять каждый вид теста (пример: "нагрузочный тест" для веб-приложения... вы можете "напрячь" приложение Silverlight или посмотреть на его "производительность", но "нагрузочный тест" - это стресс вашей машины, на которой размещается приложение .XAP-файл, и не очень интересен для приложений Silverlight в частности).

Если вы больше озабочены тестированием своей бизнес-логики и хорошей интеграцией, настоятельно рекомендуется написать код mockable/IoC, достаточный для разработки большей части вашего приложения и тестирования его версии, построенной как обычная настольная библиотека классов .NET ~ тогда вы можете иметь подмножество тестов, которые являются Silverlight только в браузере.

К вашим заметкам:

  • Вы действительно собираетесь тестировать вызовы веб-служб с помощью тестов? Такого рода интеграция/клиент + серверное тестирование может быть очень, очень трудно сделать должным образом между клиентским кодом Silverlight и веб-службой.

  • Вы не получите большой интеграции с Visual Studio 2008 IDE для модульного теста Silverlight рамки. У вас может быть тестовый проект Silverlight / приложение, которое можно нажать клавишу F5 для открытия и отладки в Visual Studio и запуска тестов. Однако вы не сможете щелкнуть правой кнопкой мыши "выполнить все тесты"или использовать инструменты управления тестовыми наборами.

  • Автоматизированный тестовый заезд для платформы модульного тестирования Silverlight-это то, что развивается медленно, некоторые люди написали набор тестовых бегунов Silverlight на CodePlex. Вы не можете получить это легко, и ваша машина сборки / тестирования должна будет следует настроить так, чтобы служба сборки выполнялась как фактический пользовательский процесс, чтобы она могла открывать и управлять веб-браузерами

В будущем, в команде Silverlight Toolkit, мы собираемся выпустить некоторый уровень поддержки автоматизированного тестирования в будущем, наряду с поддержкой простого покрытия кода, но эти инструменты не всегда доступны на сегодняшний день (окт. '09)

Я не собираюсь рекомендовать фреймворк модульного тестирования, но могу предупредить, что атрибуты теста в MSTest запечатаны (не могут быть унаследованы в новом пользовательском атрибуте, который вы создаете), в отличие от NUnit. На мой взгляд, этот факт не должен иметь большого значения, потому что я также предлагаю, чтобы в какой бы тестовой структуре вы ни оказались, придерживайтесь ее одного атрибута теста, а не создавайте свой унаследованный. Чтобы обозначить специальные тесты (такие как Silverlight, как вы упомянули), Вы должны добавить дополнительный атрибут. Хитрость заключается в том, что вы хотите запускать только те тесты, к которым применен ваш пользовательский атрибут (в отличие от всех модульных тестов), и для этого потребуется пользовательский драйвер для тестов.

Надеюсь, это поможет.