Каков наилучший формат для хранения тестовых данных в файле? - PullRequest
1 голос
/ 08 апреля 2011

В нашем проекте мы используем тестовые данные, которые хранятся в файлах .sql, которые мы иногда вызываем, чтобы воссоздать базу данных с этими тестовыми данными.В этом файле мы храним данные следующим образом:

Insert into Table1 ('col1', 'col2') values ('val1', 'val2');
Insert into Table1 ('col1', 'col2') values ('val3', 'val2');
Insert into Table1 ('col1', 'col2') values ('val4', 'val2');
...

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

Итак, я подумал, как другие хранят данные своих тестов?Я думаю, что путь rails, с файлами .yml (пары значений ключей) - это хороший способ, но как вы работаете с ним в среде без ruby-rails?

Например, в rails:

david:
 name: David Heinemeier Hansson
 birthday: 1979-10-15
 profession: Systems development

steve:
 name: Steve Ross Kellock
 birthday: 1974-09-27
 profession: guy with keyboard

1 Ответ

1 голос
/ 08 апреля 2011

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

Другой подход может быть

  • для поддержки тестовой базы данных, предварительно заполненной известными значениями. Создайте копию и запускайте свои тесты против копии каждый раз. Откажитесь после каждого теста.
  • Каждый раз, когда схема обновляется, делайте это с помощью сценариев миграции, как в rails ... затем их можно запускать с тестовой базой данных также для относительно незначительных усилий.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...