0

我正在建立一个 CD 管道。我正在计划它的自动化测试部分。我打算做 UI、WebService、Security、Perf 测试。我对代码结构有疑问。所以我计划将测试与代码放在同一个仓库中,然后为核心测试框架提供单独的仓库,例如

回购产品

  • 产品代码(项目)
  • 集成测试(项目)
  • 功能/e2e 测试(项目)
    • UI 测试(包)
    • WebSvc 测试(包)
    • 性能测试(包)
    • Sec.Tests(包)

回购测试核心

  • UI 测试框架代码(项目)
  • WebSvc 测试框架代码(项目)
  • Perf 测试框架代码(项目)
  • Sec 测试框架代码(项目)

有人看到这个结构有什么问题吗?还有其他想法吗?此外,我对集成测试与功能测试项目中的内容有点模糊(例如,WebSvc 测试可以是两者的一部分)。验收测试在哪里(功能或集成)?如果有人可以指出一些关于此的示例存储库或文章,那就太好了。

谢谢

4

1 回答 1

3

我觉得这种结构有点烦人。

从建议的结构中,我推断出您想要构建自己的测试框架。这对我来说听起来很可疑,尤其是当你想写其中 4 个时。

另一方面,您将它们全部放在同一个存储库中,因此它们似乎密切相关。再说一遍:不一定是坏/错,但真的出乎意料。

由于除了结构之外,我在您的问题中找不到任何提示,这为拥有单独的存储库提供了充分的理由,因此我建议您只使用一个,假设您的“测试框架”只是用于测试您的主要项目的实用程序。

基本规则是一起更改的内容应该一起更改(在一个存储库中)。其他一切都使开发变得非常麻烦:更改 A、安装、更改 B、运行、调试、重复而不是更改、运行、调试、重复

既然你提到你并不完全清楚,什么会去哪里,我建议如下:

从一个项目开始。在该项目的测试目录中编写所有测试。观察您是否遇到问题。如果是这样适应。您可能会遇到触发项目提取的事情:

  • 测试运行缓慢,您想单独运行它们
  • 测试需要一个已部署的应用程序,因此它们应该在构建和安装其他所有内容之后运行
  • 不同模块中的测试需要访问不应存在于主项目中的代码,因此它可能最终出现在具有测试支持代码的模块中
于 2016-05-12T11:14:24.307 回答