2013-01-31 239 views
1

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

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

网络应用程序既可以是SaaS版本,也可以是内部版本,我们计划验证这两个版本的升级是否可行并且是一种良好的做法。我知道我们将在临时环境中运行这个测试用例,但要确保在升级/部署期间我们没有损坏任何东西,或者环境尚未创建任何不同的影响。

现在的问题是,“如果没有建议什么,是不是很好的做法?”

+0

您可以在集成测试服务器或登台服务器上执行测试,而不是生产服务器。在生产中引入功能时,系统范围的功能只能测试一次。 –

回答

3

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

通常我会建议在构建/部署项目到生产之前运行单元测试,这些可以在构建服务器或QA /临时服务器上运行。只有他们全部通过才能部署到生产环境,那么你知道这个构建在这个意义上是稳定的。

如果你有集成测试,可以说服其他服务,并可能修改数据等,我wouldnt运行这些生产。我将在您的QA/Staging服务器上针对即将发布到产品的代码运行它们。

0

这是一个有趣的问题;我会说不,你不想运行一个完整的单元测试套件,但是你可能想要投资维护一个单独的部署烟雾测试套件。

原因 - 您的测试套件可能会影响产品数据库,例如,在实际测试中的错误无法回滚或什么。另外,你不想在prod中测试你的整个代码库,只要验证它部署好就可以了(假设你在运行整个测试套件时得到了可靠的结果)。