连续测试的代码结构

时间:2016-05-12 11:09:10

标签: java github continuous-testing

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

回购产品

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

Repo Test Core

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

有没有人发现这个结构有问题?还有其他想法吗?此外,我对集成测试与功能测试项目中的内容(例如WebSvc测试可能是两者的一部分)相比很模糊。验收测试在哪里(功能或集成)?如果有人可以指出一些示例回购或文章,这将是很好的。

由于

1 个答案:

答案 0 :(得分:3)

我发现这种结构有点刺激。

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

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

由于除了结构之外我无法在你的问题中找到提示,这给了一个很好的理由来建立单独的存储库,所以我建议只使用一个,假设你的" testframeworks"只是测试你的主项目的工具。

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

既然你提到你并不完全清楚,那会是什么,我推荐以下内容:

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

  • 测试运行缓慢,您想单独运行它们
  • 测试需要部署的应用程序,因此它们应该在构建和安装其他所有内容后运行
  • 不同模块中的测试需要访问不应存在于主项目中的代码,因此最终可能会出现在包含测试支持代码的模块中