我有大约 100 个单元测试,覆盖率为 %20,我正在尝试增加覆盖率,这也是一个正在开发的项目,所以请不断添加新的测试。
目前在每次构建后运行我的测试是不可行的,它们大约需要 2 分钟。
测试包括:
- 从测试文件夹中读取的文件(模拟一些 HTTP 内容的数据驱动风格)
- 向本地网络服务器发出实际的 HTTP 请求(模拟起来非常痛苦,所以我不会)
- 并非所有这些都是单元测试,但也有相当复杂的多线程类需要测试,我确实测试了测试的整体行为。这可以被视为功能测试,但也需要每次都运行。
大多数功能需要读取 HTTP、执行 TCP 等。我无法更改它们,因为如果我更改这些测试,这就是项目的全部想法,那么测试东西将毫无意义。
此外,我认为我没有最快的工具来运行单元测试。我当前的设置使用带有 Gallio 和 nUnit 作为框架的 VS TS。我认为 VS TS + Gallio 也比其他人慢一些。
你会推荐我什么来解决这个问题?我想在 btu 的每一点变化之后运行单元测试,目前这个问题正在打断我的流程。
进一步澄清编辑:
代码高度耦合!不幸的是,改变就像一个巨大的重构过程。而且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但是如果我不重构它,我就不能有更多的单元测试:)
高度耦合的代码不允许我将测试分成更小的块。另外我不测试私人的东西,这是个人的选择,这让我发展得更快,仍然获得了大量的好处。
而且我可以确认所有单元测试(具有适当的隔离)实际上都非常快,而且我对它们没有性能问题。
进一步澄清:
代码高度耦合!不幸的是,改变就像一个巨大的重构过程。而且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但是如果我不重构它,我就不能有更多的单元测试:)
高度耦合的代码不允许我将测试分成更小的块。另外我不测试私人的东西,这是个人的选择,这让我发展得更快,仍然获得了大量的好处。
而且我可以确认所有单元测试(具有适当的隔离)实际上都非常快,而且我对它们没有性能问题。