“最佳”脚本存储方式是什么?

3

我有数百个测试组件的脚本。每个脚本都包含一组子脚本和独立记录。

子脚本可以在多个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#的示例,可以从数据库中填充树形视图,但是我认为我不能使用父ID的引用(对于子脚本),因为一个子脚本可能有多个父ID。


我同意使用文件系统是一种可行的解决方案(请参见对Chris的评论),但我们想避免在删除未链接到“MainScriptForTesting”的脚本时意外删除脚本的问题。话虽如此,我们正在考虑使用更严格的过程来“证明”脚本的更改(使用漏洞修复)并将更改历史记录添加到脚本的编辑中。 - Michael Wells
3个回答

4
我建议依靠目录结构+版本控制系统。
它有许多优点:
- 版本控制帮助您保留修订并提高安全性。 - 没有任何花哨的工具,您仍然可以轻松访问它。 - 它很简单。 - 它相当快速。

我们最初使用一个目录来存储脚本,并仅仅读取它们。最终用户往往会忘记在配置管理中包含脚本,直到实际测试发生前一周才会注意到缺失的脚本并寻找它们。然后我们把所有东西都放在了一个(设计不良)的数据库中,现在我有机会通过重新编写接口(和数据存储)来进行清理。 - Michael Wells

1

我同意使用版本控制系统和文件系统是理想的。

然而,我还建议您将每个测试用例分解为包含其所需的每个附加数据的目录。大多数现代数据版本控制系统支持链接的概念,这将是它们的理想用途,以便在长期内保持可维护性。这些也与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

对于记录也是一样。虽然很繁琐,但我认为这将为您提供灵活性和可维护性,因为您可以混合和匹配脚本和测试用例。您将不得不处理额外的间接层以及一些环境变量,例如$SHAREDTOP,可以使您的脚本不会被移动。如果您使用Windows,则只能从好的版本控制系统中获取可链接功能。在UNIX系统上,即使tar也足够。


0
我也建议只使用具有一致命名方案的目录结构。如果您需要打包所有文件,您可能可以使用“tar”(或其他存档/压缩工具)。

配置管理会“看穿”这一点,并使我们解压并验证每个单独的脚本。 ;) - Michael Wells

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接