我们最近开始了TDD,我们正在为我们开发的每个RESTful Web服务编写JUnit测试用例。发行新版本时,在生产环境上运行JUnit测试用例是一个好主意吗?

背景:
我们的网络应用是企业网络应用,具有复杂的业务逻辑。计划是使用@After和@AfterClass清理通过运行测试用例生成的测试数据。

该Web应用程序既有SaaS版本也有本地版本,并且我们计划在可行和良好实践的情况下验证两个版本的升级。我知道我们将在临时环境上运行此测试用例,但要确保在升级/部署期间我们没有破坏任何东西,或者环境没有造成任何不同的影响。

现在的问题是,“这是一种好的做法吗?是否没有建议?”

最佳答案

您的单元测试应该只测试代码。他们不应该使用外部资源(例如数据库和/或Web服务)进行修改,然后它们将成为集成测试。

通常,我建议在将项目构建/部署到生产之前运行单元测试,这些可以在构建服务器或QA /登台服务器上运行。只有所有这些都通过,您才可以部署到生产环境,然后您才能知道构建在这种意义上是稳定的。

如果您的集成测试确实可以与其他服务进行通信,并且可能会修改数据等,那么我就不会在生产环境中运行这些测试。我将针对即将发布到生产环境中的代码在QA / Staging服务器上运行它们。

08-04 17:08