2009-06-22 2 views
6

В течение нескольких лет я использую инструмент тестирования qmTest, который позволяет мне выполнять тестовую разработку баз данных для некоторых баз данных Firebird. Я пишу тест для новой функции (таблицы, триггера, хранимой процедуры и т. Д.) До тех пор, пока она не сработает, а затем измените базу данных до тех пор, пока тест не пройдет. Если необходимо, я больше работаю над тестом, пока он не сработает снова, а затем измените базу данных до тех пор, пока тест не пройдет. Как только тест для функции завершен и пройдет 100% времени, я сохраняю его в наборе других тестов для базы данных. Прежде чем перейти к другому тесту или развертыванию, я запускаю все тесты как набор, чтобы убедиться, что ничего не сломано. Тесты могут иметь зависимости от других тестов, а результаты записываются и отображаются в браузере.Средство разработки Test-First для SQL Server 2005?

Ничего нового здесь, я уверен.

Наш магазин нацелен на стандартизацию на MSSQLServer, и я хочу использовать ту же процедуру для разработки наших баз данных. Кто-нибудь знает инструменты, которые позволяют или поощряют такое развитие? Я считаю, что Team System делает, но мы не владеем этим на данный момент и, вероятно, не будем на некоторое время.

Я не против создания сценариев, но приветствую более графическую среду.

Любые предложения?

ответ

2

Командная система, вероятно, самое известное решение, но вы также можете попробовать TSQLUnit (SourceForge).

Я не использовал его сам, но this article делает приличную работу по его внедрению.

1

В проектах, где у меня не было доступа к командной системе для db pro, я использовал sql-скрипты в сочетании с msbuild и библиотекой задач sdc для msbuild (http://www.codeplex.com/sdctasks). Сценарий msbuild вызывает задачу sdc для запуска моих sql-скриптов в определенном порядке (например, создание db, создание таблиц и т. Д.) И в конкретной строке соединения. Сценарии всегда проверяют, существует ли объект, и сначала отрывают его, и строят его обратно.

Скрипты sql и msbuild, которые я размещаю в обычном проекте базы данных визуальной студии (который ничего не делает, поэтому вы можете использовать простой пустой проект), поэтому все контролируется с помощью источника.

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

Эти сценарии могут быть также использованы для создания баз данных с нуля в различных средах (DEV/TST/ква/...)

1

я был в состоянии адекватно apply a test driven development style against SQL Server databases using TSQLUnit. Я следил за тем же потоком, который вы описали, написав сначала единичный тест sproc, который терпит неудачу, а затем внес изменения, необходимые для прохождения теста. Со временем я также создал набор тестов, когда был выполнен валидатор, который ничего не сломал при внесении каких-либо новых изменений.

Существовало несколько трудных мест (включая экстремальные трудности при написании тестов для существующих sprocs), но он работал особенно для изменений схемы.Однако я бы рекомендовал посмотреть на T.S.T. the T-SQL Test Too1, который в отличие от TSQLUnit (I had to roll my own) имеет встроенную поддержку утверждений.

+0

+1 Спасибо, обратившись к T.S.T., это выглядит очень хорошо. –