Инструмент разработки Test-First для SQL Server 2005?

В течение нескольких лет я использовал инструмент тестирования под названием qmTest, который позволяет мне разрабатывать тестовые базы данных для некоторых баз данных Firebird. Я пишу тест для новой функции (таблицы, триггера, хранимой процедуры и т. Д.) До тех пор, пока она не выйдет из строя, затем изменяю базу данных, пока тест не пройдет. При необходимости я делаю больше работы над тестом, пока он снова не завершится неудачей, затем изменяю базу данных, пока тест не пройдет. После того, как проверка этой функции будет завершена и пройдет 100% времени, я сохраню ее в наборе других тестов для базы данных. Прежде чем перейти к другому тесту или развертыванию, я запускаю все тесты как набор, чтобы убедиться, что ничего не сломано. Тесты могут зависеть от других тестов, а результаты записываются и отображаются в браузере.

Я уверен, что здесь нет ничего нового.

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

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

Какие-либо предложения?

4 ответа

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

Я не использовал это сам, но эта статья делает достойную работу по представлению этого.

Оформить заказ http://www.sqlservercentral.com/articles/Testing/66553/ и http://www.sqlservercentral.com/articles/Database+Design/66845/

Это довольно грубая статья о том, как все делать в T-SQL.

Думали ли вы об использовании NHibernate и TestDriven или аналогичных только для тестов?

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

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

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

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

Я смог адекватно применить тестовый стиль разработки к базам данных SQL Server, используя TSQLUnit. Я следовал тому же потоку, который вы описали, сначала написав sproc модульного теста, а затем внеся изменения, необходимые для прохождения теста. Со временем я также собрал набор тестов, когда выполнялись проверенные, что ничего не сломалось при внесении каких-либо новых изменений.

Было несколько трудных моментов (включая чрезвычайные трудности при написании тестов для существующих sprocs), но это работало особенно для изменений схемы. Тем не менее, я бы порекомендовал взглянуть на TST T-SQL Test Too1, который, в отличие от TSQLUnit ( мне пришлось свернуть свой собственный), имеет встроенную поддержку утверждений.

Другие вопросы по тегам