gpt4 book ai didi

performance - 如何处理长时间运行的单元测试?

转载 作者:可可西里 更新时间:2023-11-01 15:19:07 26 4
gpt4 key购买 nike

我有大约 100 个单元测试和 %20 的覆盖率,我正在努力增加覆盖率,而且这是一个开发中的项目,因此请继续添加新测试。

目前在每次构建后运行我的测试是不可行的,它们需要大约 2 分钟。

测试包括:

  • 从测试文件夹中读取文件(模拟一些 HTTP 内容的数据驱动样式)
  • 向本地网络服务器发出实际的 HTTP 请求(模拟起来非常痛苦,所以我不会)
  • 并非所有这些都是单元测试,但也有相当复杂的多线程类需要测试,我确实测试了测试的整体行为。这可以被视为功能测试,但也需要每次都运行。

大部分功能需要读取 HTTP、执行 TCP 等。我无法更改它们,因为如果我更改这些测试,这就是项目的全部想法,那么测试内容将毫无意义。

此外,我认为我没有运行单元测试的最快工具。我当前的设置使用带有 Gallio 和 nUnit 作为框架的 VS TS。我认为 VS TS + Gallio 也比其他的慢一些。

你会推荐我什么来解决这个问题?我想在每一点变化之后运行单元测试 btu 目前这个问题打断了我的流程。

进一步澄清编辑:

代码高度耦合!不幸的是,更改就像一个巨大的重构过程。这里面有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它,我就不能进行更多的单元测试:)

高度耦合的代码不允许我将测试分成更小的 block 。另外我不测试私有(private)的东西,这是个人的选择,这让我开发得更快并且仍然获得了大量的好处。

而且我可以确认所有单元测试(具有适当的隔离)实际上都非常快,并且我没有遇到性能问题。


进一步说明:

代码高度耦合!不幸的是,更改就像一个巨大的重构过程。这里面有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它,我就不能进行更多的单元测试:)

高度耦合的代码不允许我将测试分成更小的 block 。另外我不测试私有(private)的东西,这是个人的选择,这让我开发得更快并且仍然获得了大量的好处。

而且我可以确认所有单元测试(具有适当的隔离)实际上都非常快,而且我没有遇到性能问题。

最佳答案

这些对我来说听起来不像是单元测试,而更像是功能测试。很好,自动化功能测试很好,但是功能测试很慢是很常见的。他们正在测试整个系统(或其中的大部分)。

单元测试往往很快,因为它们测试的是与其他所有事物隔离的事物。如果您不能将事物与其他所有事物隔离开来进行测试,您应该考虑到您编写的代码的警告标志是过于紧耦合

您能说出您的哪些测试是单元测试(仅测试 1 项)还是功能测试(同时测试 2 项或更多项)?哪些快,哪些慢?

关于performance - 如何处理长时间运行的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368622/

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