ORM не является просто мобильностью (которого довольно трудно достигнуть даже с ORMs, в этом отношении). То, что это дает Вам, является в основном слоем абстракции по персистентному хранилищу, когда инструмент ORM освобождает Вас от записи шаблонных SQL-запросов (выбирает PK или предикатами, вставляет, обновляет и удаляет), и позволяет Вам сконцентрироваться на проблемной области.
Мне нравится ваша идея поместить тесты QUnit в отдельный проект. Как насчет использования XCOPY
для копирования сценариев в событии предварительной сборки?
Допустим, ваш проект MVC - MyProj.Web , а ваш тестовый проект QUnit - MyProj.ClientTest (замените на названия ваших проектов).
Создайте папку сценариев в своем проекте ClientTest.
Из Проект> MyProj.ClientTest Свойства> События сборки добавьте следующее в командную строку события перед сборкой :
XCOPY "$ ( SolutionDir) MyProj.Web \ Scripts "" $ (ProjectDir) Scripts "/ S / Y
Затем в ваш HTML просто включите соответствующие файлы JavaScript из папки Scripts.
Примечание. Вам придется пересобрать проект ClientTest, чтобы обновить файлы JavaScript, если вы захотите повторно запустить тесты. При необходимости измените имена папок, пути и параметры XCOPY
.
Возможно, вы могли бы выбрать методы из этой статьи , включая использование командной строки, использование NUnit с WatiN и извлечение результатов тестов для отчетов. Это решение не потребовало бы отдельного проекта WebForms для использования тестов, поскольку все это обрабатывается WatiN.
Мне не слишком ясно, почему использование MVC имеет значение - если вы хотите интегрировать свои тесты в сборку CI, тогда предложение gWiz - это правильный путь.
Если ваше требование является что вы хотите запускать тесты в интерактивном режиме прямо на реальной странице, не влияя на внешний вид этой страницы, тогда вы можете проверить плагин FireUnit для Firebug. Вы также можете обернуть FireUnit вокруг QUnit, как описано в блоге Джона Ресига .
Если вас беспокоит включение тестовых материалов, включите соответствующие скрипты в свои тестовые / отладочные сборки и отключите / удалите их в своем производственные постройки.