Инструмент разработки Test-First для SQL Server 2005? - PullRequest
6 голосов
/ 22 июня 2009

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

Ничего нового, я уверен.

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

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

Есть предложения?

Ответы [ 4 ]

2 голосов
/ 22 июня 2009

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

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

1 голос
/ 30 марта 2010

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

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

1 голос
/ 16 декабря 2009

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

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

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

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

1 голос
/ 22 июня 2009

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

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

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

...