Каков «лучший» способ хранения скриптов? - PullRequest
3 голосов
/ 24 апреля 2009

У меня есть сотни скриптов для тестирования компонента. Каждый из этих сценариев содержит набор подписок и отдельных записей.

Подписки могут использоваться в нескольких сценариях TC_Level и даже в других подписках.
Каждый скрипт имеет уникальное имя.

Пример:

TC_1
  |  
 (1) Subscript_a  
  |  |  
  | (1) Record  i
  |  |  
  | (2) Record  ii
  |  
 (2) Subscript_b  
  |  |  
  | (1) Subscript_c
  |  |  |
  |  | (1) Record_i  
  |  |  |  
  |  | (2) Record_iii  
  |  |
  | (2) Record_ii  
  |  
 (3) Record_iv  
  |  
 (4) Record_v  
  |  
  ...  

Я бы хотел

  • хранить мои скрипты в контейнере.
  • читать их в виде дерева в моем скриптовом движке.

Какой тип контейнера я должен использовать?

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

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

Я видел c # примеры заполнения базы данных древовидных форм, но я не думаю, что могу использовать ссылку на parentID (для индексов), поскольку индекс может иметь более одного parentID.

Ответы [ 3 ]

4 голосов
/ 24 апреля 2009

Я бы рекомендовал опираться на структуру каталогов + систему контроля версий.

Имеет много преимуществ:

  • контроль версий помогает вам сохранить ваши ревизии и повышает безопасность
  • он по-прежнему доступен для вас без каких-либо необычных инструментов
  • это просто
  • это довольно быстро
1 голос
/ 24 апреля 2009

Я согласен, что система контроля версий и файловая система идеальны.

Однако я бы также рекомендовал разбить каждый контрольный пример на каталог для каждой части необходимых ему дополнительных данных. Большинство современных систем контроля версий dat поддерживают понятия ссылок, и это было бы идеальным вариантом для их использования в долгосрочной перспективе. Они также хорошо работают с tar, как указано в другом ответе.

 Shared
 |    |
 |    Subscript_a  
 |    |
 |    Subscript_b
 |    |  
 |    Subscript_c  
 Test_Case_1
 |         |
 |         SUBSCRIPT_B_DIRECTORY
 |                             |
 |                             link to ../../Shared/Subscript_b
 |                             |
 |                             SUBSCRIPT_C_DIRECTORY
 |                                                 |
 |                                                 link to ../../../../Shared/scri_c
 Test_Case_2
 |         |
 |         SUBSCRIPT_C_DIRECTORY
 |                             |
 |                             link to ../../Shared/Subscript_c
 Test_Case_3
           |
           SUBSCRIPT_A_DIRECTORY
           |                   |
           |                   link to ../../Shared/Subscript_a
           SUBSCRIPT_B_DIRECTORY
                               |
                               link to ../../Shared/Subscript_b

То же самое относится и к записям. Его больно настраивать, но я считаю, что это купит вам гибкость и ремонтопригодность в долгосрочной перспективе возможность смешивать и сочетать ваши сценарии и Test_Cases. Вам придется иметь дело с дополнительный уровень косвенности и некоторые переменные окружения, такие как $ SHAREDTOP может изолировать ваши сценарии от перемещения. Если вы работаете в Windows, вы получите связываемую функцию только от хорошей системы контроля версий. Снова tar будет достаточно даже для UNIX-системы.

0 голосов
/ 24 апреля 2009

Я бы также рекомендовал просто использовать структуру каталогов с последовательной схемой именования. Если вам нужно упаковать все файлы, вы можете просто использовать «tar» (или какой-либо другой инструмент архивирования / zip).

...