Модульный тест для запуска .sql-сценария для SQL Create Database - PullRequest
0 голосов
/ 29 марта 2010

Может ли кто-нибудь указать мне, как получить тест NUnit для запуска файла .sql для создания / настройки базы данных.

Я знаю об атрибутах / методах TestFixtureSetUp и TestFixtureTearDown в NUnit.

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

Я просто не уверен, как загрузить и выполнить содержимое файла .sql программно с базой данных SQL Server 2005.

Есть ли примеры?

Это часть нашего TDD / CI. Мы хотим создать базу данных до и разрушить базу данных после выполнения модульных тестов.

Приветствия

- Ли

ОБНОВЛЕНИЕ: Теперь я вытащил создание базы данных / выполнение сценариев .sql вне модульных тестов, используя пакетный файл для вызова sqlcmd. И это, кажется, работает нормально.

Ответы [ 3 ]

1 голос
/ 09 апреля 2010

Я использовал sqlcmd.exe в файле .bat для запуска сценариев .sql как отдельной части сборки CI, выполняемой непосредственно перед юнит-тестами.

Кажется, это приемлемый способ сделать это.

0 голосов
/ 29 марта 2010

Взгляните на Fluent-Migrator .
Он имеет возможность запускать сценарии SQL для SQL Server 2005 и может запускаться из nant.

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

0 голосов
/ 29 марта 2010

Я использую текстовый файл с одним SQL-оператором на строку. метод TestFixtureSetUp читает этот файл (построчно) и выполняет каждый SQL-оператор с IDbCommand ADO.NET:

что-то вроде:

using (IDbConnection cnn = OpenConnection(connectionString))
  foreach (string line in ReadFile(sqlFile))
    using (IDbCommand cmd = cnn.CreateCommand()) {
      cmd.CommandText = line;
      cmd.ExecuteNonQuery();
    }

вы также можете захотеть взглянуть на что-то вроде SQL Installer.NET

...