gpt4 book ai didi

integration-testing - 集成测试最佳实践

转载 作者:行者123 更新时间:2023-12-03 12:08:29 25 4
gpt4 key购买 nike

我们的团队有数百个集成测试,这些测试可以访问数据库并验证结果。我有两个用于所有集成测试的基类,一个用于仅检索测试,一个用于创建/更新/删除测试。仅检索基类在 TestFixtureSetup 期间重新生成数据库,因此每个测试类只执行一次。 CUD 基类在每次测试之前重新生成数据库。每个存储库类都有自己对应的测试类。

正如你可以想象的那样,这整个过程需要相当长的时间(大约 7-8 分钟运行并快速增长)。将此作为我们的 CI (CruiseControl.Net) 的一部分运行不是问题,但在本地运行需要很长时间,并且在提交代码之前确实禁止运行它们。

我的问题是是否有任何最佳实践来帮助加快执行这些类型的集成测试?

我无法在内存中执行它们(la sqlite),因为我们使用了一些在 sqlite 中不受支持的特定于数据库的功能(计算列等)。

此外,整个团队必须能够执行它们,因此在 SQL Server Express 的本地实例上运行它们可能容易出错,除非这些实例的连接字符串都相同。

你是如何在你的商店里做到这一点的,什么效果很好?

谢谢!

最佳答案

将您的快速(单元)测试和慢速(集成)测试分开,以便您可以单独运行它们。使用测试框架提供的任何方法对测试进行分组/分类。如果测试框架不支持对测试进行分组,请将集成测试移动到仅包含集成测试的单独模块中。

快速测试应该只需要几秒钟就可以运行所有它们,并且应该具有很高的代码覆盖率。这类测试允许开发人员进行无情的重构,因为他们可以做一个小的改动并运行所有的测试,并且非常有信心这个改动没有破坏任何东西。

缓慢的测试可能需要几分钟才能运行,它们将确保各个组件正确地协同工作。当开发人员所做的更改可能会破坏由集成测试而不是单元测试测试的某些内容时,他们应该在提交之前运行这些集成测试。否则,慢速测试由 CI 服务器运行。

关于integration-testing - 集成测试最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com