2010-05-21 3 views
5

Я хотел бы выполнить регрессионные проверки хранимых процедур t-sql. Моя идея - указать для каждого набора параметров множественного ввода SP. SP должен быть выполнен с этими параметрами, результаты должны быть записаны на диск. В следующий раз новые результаты следует сравнить с результатами, которые были сохранены ранее.Регрессионные тесты для хранимых процедур T-SQL

Кто-нибудь знает хороший инструмент для чего-то подобного? Не должно быть так сложно реализовать, но на практике вам понадобятся такие функции, как «игнорировать этот столбец» или что-то в этом роде. И я бы предположил, что такой инструмент должен уже существовать !?

веселит, Ахим

+0

Предоставление только входов и ожидаемых выходных звуков больше похоже на то, как вы тестируете функции. Хранимые процедуры могут использовать данные, отличные от входных параметров, и могут иметь побочные эффекты, такие как запись данных в таблицу, поэтому вам также нужно будет установить этап для вашего теста, заполнив соответствующие таблицы и сохранив любые побочные эффекты как часть результат. – mdma

ответ

5

Я хотел бы использовать блок тестов, как DbUnit. DbUnit настроит вашу базу данных, запустит хранимую процедуру, а затем проверит результат и, возможно, откатит базу данных, готовую к следующему тесту. Он представляет входные данные и ожидаемые результаты в виде XML-файлов, которые вы можете перепроектировать из данных и схемы уже в базе данных.

К регрессионному тесту вы используете блок db для однократного запуска хранимых процедур и получения результата (без проверки его). Это определяет базовую линию, с которой вы выполняете последующие регрессионные тесты.

DbUnit имеет хорошую абстракцию для табличных данных, которые могут быть извлечены из файлов CVS, файлов XML или объектов базы данных.

Входы теста и ожидаемые результаты легко различаются и сохраняются в управлении версиями, поскольку они хранятся как XML. Как уже упоминалось, вы также можете загружать и сохранять данные из файлов CSV.

DbUnit - отличный инструмент для тестирования функции базы данных, project page и FAQ - хорошие ресурсы для начала работы.

+0

Звучит неплохо, но похоже, что это инструмент Java. Кто-нибудь знает аналогичный инструмент для .Net? – Achim

+0

Извините, вы не указали язык в своем вопросе. Для .NET существует NDbUnit - http://code.google.com/p/ndbunit/. На странице проекта упоминается, что он заимствует многие идеи из DbUnit, поэтому это должно быть хорошим совпадением. – mdma

+0

Я только что наткнулся на это - TSQLUnit - http://sourceforge.net/apps/trac/tsqlunit/ – mdma

Смежные вопросы