Как выполнить сценарий SQL для подготовки БД перед выполнением модульных тестов в Visual Studio - PullRequest
4 голосов
/ 09 сентября 2010

У меня много модульных тестов, которые зависят от определенной конфигурации базы данных.Я хотел бы выполнять сценарий каждый раз, когда я запускаю модульные тесты, чтобы база данных работала нормально и тесты не заканчивались ошибкой из-за неправильных данных в БД.В настоящее время у меня есть сценарий SQL для размещения нужных данных в БД.

Есть ли способ сделать это из Visual Studio (было бы неплохо в 2008 году)?

Спасибо заранее, товарищи.

Ответы [ 3 ]

2 голосов
/ 09 сентября 2010

вы можете реализовать методы с такими атрибутами, как [ClassInitialize] и [AssemblyInitialize], которые выполняются один раз перед первым тестом в классе или сборке. В таком методе вы запускаете скрипт.

Вы также можете написать метод, который вызывается в каждом тесте ([TestInitialize]), который знает, был ли он уже выполнен. Таким образом, вы можете запускать скрипт перед каждым тестом, который в нем нуждается, но не тогда, когда вы запускаете только тесты, в которых он не нужен.

2 голосов
/ 09 сентября 2010

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

SQLHelper.executeScript("example.sql", DatabaseConnection.get());

Это всего лишь одна строка кода, которую можно скопировать и вставить.Возможно, вам даже не нужно назначать соединение с базой данных, если оно уже установлено.И ваши тесты будут работать везде.

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

0 голосов
/ 09 сентября 2010

Да, вы можете. Вы будете запускать его как часть вашей TestInitialise или Pre-Test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...