Java 测试自动化源的位置

Java 测试自动化源的位置,java,testing,automated-tests,cucumber,fitnesse,Java,Testing,Automated Tests,Cucumber,Fitnesse,我正忙于为自己介绍测试自动化。想想Fitnesse、Cucumber或Robot现在我不知道该把测试放在哪里。大致有三种选择 1) 与测试中的应用程序相同的项目 2) 在同一(Git)回购中的单独项目中 3) 在单独(Git)回购中分离项目 如果有,什么是共同的做法?为什么呢?我的最佳实践是将测试放在同一Git repo中,放在它自己的模块中,这样我就可以访问同一分支中的应用程序代码和测试代码。不仅是我,还有正在使用的CI/CD工具。我的最佳实践是将测试放在它自己模块中的同一Git repo中,

我正忙于为自己介绍测试自动化。想想Fitnesse、Cucumber或Robot现在我不知道该把测试放在哪里。大致有三种选择

1) 与测试中的应用程序相同的项目 2) 在同一(Git)回购中的单独项目中 3) 在单独(Git)回购中分离项目


如果有,什么是共同的做法?为什么呢?

我的最佳实践是将测试放在同一Git repo中,放在它自己的模块中,这样我就可以访问同一分支中的应用程序代码和测试代码。不仅是我,还有正在使用的CI/CD工具。

我的最佳实践是将测试放在它自己模块中的同一Git repo中,这样我就可以访问同一分支中的应用程序代码和测试代码。不仅是我,而且Ci/CD工具也在使用中。

< P>我不会考虑在同一个存储库中保存生产代码和测试代码。

我的主要论点是

  • 我希望在每次生产代码更改时执行测试,并且我的CI服务器接收到更改
  • 测试代码和生产代码由相同的人同时维护,将它们保存在不同的存储库中只会让生活变得艰难

我不考虑在同一个存储库中保存生产代码和测试代码的任何事情。

我的主要论点是

  • 我希望在每次生产代码更改时执行测试,并且我的CI服务器接收到更改
  • 测试代码和生产代码由相同的人同时维护,将它们保存在不同的存储库中只会让生活变得艰难

通过单元/集成测试,我需要访问应用程序代码。所以我也把它们放在那里了。我所说的是对已部署的应用程序进行功能测试。对于已部署的应用程序进行功能测试,我使用与Koen相同的策略。测试代码进入相同的repo,因此测试代码可以与应用程序代码一起演化,而无需维护某种约定(或更糟糕的配置),以确定使用(已部署)应用程序的版本运行哪个版本的测试。通过单元/集成测试,我需要访问应用程序代码。所以我也把它们放在那里了。我所说的是对已部署的应用程序进行功能测试。对于已部署的应用程序进行功能测试,我使用与Koen相同的策略。测试代码进入同一个repo,因此测试代码可以随应用程序代码演化,而无需维护某种约定(或更糟糕的配置),以确定使用(已部署)应用程序的版本运行哪个版本的测试。当您谈论Junit测试甚至交互测试时,这是正确的。但是,当你谈论功能/验收测试时,我认为是不同的,当你在多个应用程序上执行时,它必须是分开的。我组织测试的方式与我实施验收测试的方式相同。我不希望在其他地方进行维护,它们与产品一样重要,因此应该在同一位置进行维护。从您的角度来看,测试和功能/验收测试之间有什么区别?对我来说,功能测试就是验证产品是否正确的任何东西。它们可以在单元级别上实现,也可以通过产品UI在更高级别上实现。对许多产品使用相同的测试代码对我来说意味着它们实际上是同一个产品,而且您还没有发现它。您可能希望朝着mono repo的方向发展,就像现在许多组织所做的那样,从而最终在同一个Reposito中控制测试代码的版本。生产代码的其余部分就是这些。当您谈论Junit测试甚至交互测试时,这是真的。但是,当你谈论功能/验收测试时,我认为是不同的,当你在多个应用程序上执行时,它必须是分开的。我组织测试的方式与我实施验收测试的方式相同。我不希望在其他地方进行维护,它们与产品一样重要,因此应该在同一位置进行维护。从您的角度来看,测试和功能/验收测试之间有什么区别?对我来说,功能测试就是验证产品是否正确的任何东西。它们可以在单元级别上实现,也可以通过产品UI在更高级别上实现。对许多产品使用相同的测试代码对我来说意味着它们实际上是同一个产品,而且您还没有发现它。您可能希望朝着mono repo的方向发展,就像现在许多组织所做的那样,从而最终在同一个repositoy中控制测试代码的版本,即生产代码的其余部分。