6

We have a suite of applications developed in C# and C++ and using SQL Server as the back end. Integration tests are developed with NUnit, and they take more than two minutes to run. To speed up integration tests, we are using the following:

  • Tests run on the same workstation, so no network delays
  • Test databases are created on DataRam RAM Disk, which is fast
  • Test fixtures run in parallel, currently up to four at a time
  • Most test data is bulk loaded using table-valued parameters.

What else can be done to speed up automated integration tests?

4

2 回答 2

0

我知道这个问题非常非常古老,但无论如何我都会发布我的答案。

听起来可能很愚蠢,但是:编写更少的集成测试和更多的单元测试。仅在您的应用程序边界进行集成测试(如“当您将控制权传递给您不拥有的代码时”)。

我对此的看法受到JB Reinsberger的启发。如果你愿意,你可以听听他就这个话题发表的演讲。他比我更能解释这一点。这是视频的链接:

http://vimeo.com/80533536

于 2014-10-30T12:51:20.170 回答
0

我不喜欢这个答案,因为它是错误的,所以少写集成测试。我们的应用程序数据量很大。我们的大部分代码都是围绕数据的逻辑。因此,如果没有集成测试,我们只有微不足道的单元测试(我认为仍然应该编写)。

我们的集成测试运行 1 小时。成千上万的测试。他们给我们带来了巨大的价值。

我认为您应该分析缓慢的测试以及它们为何缓慢。查看多个测试是否可以重用数据,而无需从头开始删除和重新创建它。将测试划分为多个区域,这样您就不必总是运行每个测试。使用现有的数据库快照而不是重新创建数据库。

于 2020-03-23T14:48:39.453 回答