我正在构建 CD 管道。我正在计划其中的自动化测试部分。我计划进行 UI、WebService、安全、性能测试。我对代码结构有疑问。所以我的计划是将测试与代码放在同一个存储库中,然后为核心测试框架使用单独的存储库,例如
repo 产品
- 产品代码(项目)
- 集成测试(项目)
- 功能/e2e 测试(项目)
- UI 测试(包)
- WebSvc 测试(包)
- 性能测试(包)
- Sec.Tests(包)
repo 测试核心
- UI 测试框架代码(项目)
- WebSvc 测试框架代码(项目)
- 性能测试框架代码(项目)
- Sec 测试框架代码(项目)
有人发现这个结构有什么问题吗?还有其他想法吗?另外,我对集成测试和功能测试项目中的内容也不太清楚(例如,WebSvc 测试可以是两者的一部分)。验收测试去哪里(功能或集成)?如果有人能指出一些关于此的示例存储库或文章,那就太好了。
谢谢
最佳答案
我发现这种结构有点令人恼火。
从建议的结构中,我推断您想要构建自己的测试框架。这对我来说听起来很可疑,尤其是当你想写其中 4 个时。
另一方面,您将它们全部放在同一个存储库中,因此它们似乎密切相关。再说一次:不一定是坏/错,但确实出乎意料。
由于除了结构之外,我在您的问题中找不到任何提示,这给出了拥有单独存储库的充分理由,因此我建议仅使用一个存储库,假设您的“testframeworks”只是测试您的主要功能的实用程序项目。
基本规则是一起更改的内容应该放在一起(在一个存储库中)。其他一切都让开发变得非常麻烦:更改 A、安装、更改 B、运行、调试、重复而不是更改、运行、调试、重复
既然你提到你并不完全清楚,什么会去哪里,我建议如下:
从单个项目开始。将所有测试写入该项目的测试目录中。观察是否遇到问题。如果是这样适应。您可能会遇到的、触发项目提取的事情:
- 测试运行缓慢,您希望单独运行它们
- 测试需要已部署的应用程序,因此应在构建和安装其他所有内容后运行
- 不同模块中的测试需要访问不应存在于主项目中的代码,因此它可能最终出现在具有测试支持代码的模块中
关于java - 用于持续测试的代码结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37185152/