2010-11-03 1 views
0

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

Я нашел следующее information, связанное с созданием базы данных Access в C#. Примечание. Я знаю, что доступ, вероятно, не самый лучший вариант, но он достаточно хорош!

Что я хотел бы знать, есть ли способ использования TableAdapters (возможно) для репликации схемы производственной базы данных (без каких-либо данных) в пустой файл базы данных Access?

ответ

4

ли это:

  • создать копию файла доступа; производство -> тест
  • подключения к тестовой базе данных
  • enumerate all tables в базе
  • выполнения DELETE * FROM [table] для всех таблиц. запустить его несколько раз, если у вас есть FK зависимостей, пока нет ошибки - или TRUNCATE [table], как прокомментировал
  • compact база данных
+2

'TRUNCATE' работает определенно быстрее, чем' DELETE' – abatishchev

0

У меня нет большого опыта работы с Access, но, как правило, для этой цели вы создадите скрипт CREATE. У большинства инструментов базы данных есть функция для создания такого скрипта. Такой сценарий в основном представляет собой набор операторов SQL, которые создают все объекты (например, базы данных, представления).

Поиск CREATE script and Access will give you some starting points.

0

У меня плохой опыт работы с Access как производственная база данных. Я не буду рекомендовать. Или идите с SQLite или Firebird.

Во-вторых, да, вы можете использовать TableAdapters. Вам нужно создать два подключения для каждого db. Но я думаю, что для этого могут быть инструменты.

Отредактировано **

Насколько велика база данных? Oracle Express Edition может помочь до 4 ГБ. Кроме того, он будет легко клонировать от Oracle до Oracle.

+0

я должен дать понять, что производственная база данных является Oracle DB, но для простоты использования и портативности Я думаю, что база данных Unit Test должна быть Access. –

+0

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

+0

В зависимости от теста (и вашего определения «единица») я обычно старался реплицировать вживую как можно лучше. Итак, у вас есть экземпляр Oracle, а затем что-то вроде dbunit, чтобы поместить его в известное состояние для тестовых и shell-скриптов, чтобы сделать его «live минус-данные». –

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