java - 用于持续测试的代码结构

标签 java github continuous-testing

我正在构建 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/

相关文章:

java - 正则表达式适用于 java.util.regex.Pattern,但不适用于 com.oroinc.text.regex.Perl5Matcher

java - 从 Spring-Jersey 1.x 迁移到 2.x

git - Travis CI - 从 github pull 的提交数量有限

ios - 没有 CocoaPods 的 iOS 上的 Google Cloud Messaging (GCM)

continuous-integration - 持续集成的级别

java - 将 IN 子句与 Java 的 JCR-SQL2 结合使用

java - Jersey 的 ServletContainer 位于哪里

git - 无法在 ssh 终端 session 中推送到 github(Ubuntu ssh-agent over ssh)

bdd - 如何设置 NCrunch 来运行 nspec 测试

ruby - 自动测试、RSpec 2 和 Ruby 1.9.2-p0 - 完全没有输出