Visual studio NUnit在Resharper测试运行程序中使用实体框架进行的第一次测试非常慢

Visual studio NUnit在Resharper测试运行程序中使用实体框架进行的第一次测试非常慢,visual-studio,entity-framework,entity-framework-4,nunit,resharper,Visual Studio,Entity Framework,Entity Framework 4,Nunit,Resharper,在使用EntityFramework4.1时,有没有解决第一个NUnit测试缓慢的方法 我发现第一次测试大约需要10秒,其余测试只需0.01秒(根据Resharper Show Time选项) 如果我使用NUnit GUI运行测试,第一个测试同样需要10秒,但是如果我重新运行整个测试集,则在不到0.5秒的时间内运行。。。直到我重新编译解决方案 我还对IIS中托管的WCF服务进行了NUnit测试,该服务调用EF,第一个测试大约在3秒钟内完成。然后,如果我重新运行测试,时间会减少到1秒,正如预期的那

在使用EntityFramework4.1时,有没有解决第一个NUnit测试缓慢的方法

我发现第一次测试大约需要10秒,其余测试只需0.01秒(根据Resharper Show Time选项)

如果我使用NUnit GUI运行测试,第一个测试同样需要10秒,但是如果我重新运行整个测试集,则在不到0.5秒的时间内运行。。。直到我重新编译解决方案

我还对IIS中托管的WCF服务进行了NUnit测试,该服务调用EF,第一个测试大约在3秒钟内完成。然后,如果我重新运行测试,时间会减少到1秒,正如预期的那样,在重新编译时,第一次时间会恢复到3秒

但是最初的NUnit测试是针对调用EF的方法的类库的,它总是在10秒左右,也就是说,没有减少时间

好的,我知道IIS正在做“某事”[什么?],但在这两种情况下,我都使用NUnit来做调用。。。为什么一个10秒以上用于第一次呼叫,另一个3秒,然后在后续呼叫中为1秒

为了让我感到困惑,我编写了一个简单的控制台应用程序,它使用被测试类中的方法调用了一个EF,并设法在1秒内完成

更新。。。与MSTest测试相同的重新编写的测试在大约3.5秒内完成第一个测试,这与NUnit GUI运行程序中的第一个测试运行相当,因此问题似乎是Visual Studio中NUnit的Resharper测试运行程序

更新2。。。是的,问题似乎确实在于Resharper测试运行者。TestDriven.NET和Visual Nunit 2010都更快


更新3。。。现在它作为一个问题被记录下来,这是一种常见的行为,因为第一次测试必须编译“EF视图”-这在您第一次使用模型中映射的任何东西时发生。然后缓存并重用相同的编译视图。这是可以避免的,但需要手动生成视图的代码()将该代码添加到项目中,并与解决方案一起编译。每次在EDMX中更改任何内容时,您都必须这样做,除非您将其作为项目中的一些预构建操作(这反过来会减慢您的构建)。

不同运行者之间的差异可能是由于他们使用的平台(x64与x86)。EF在x64模式下启动要慢得多。

我一定是做错了什么。。。尝试了链接上描述的过程,但第一次测试仍需要10秒以上的时间。更让我困惑的是,我曾经尝试过一个控制台应用程序调用相同的代码,它需要大约一秒钟的时间。。。NUnit为什么/在做什么?当有疑问时,在其上打上进程监视器。在什么上打进程监视器。。。努尼特?第一次测试让我更困惑。。。见编辑question@ladislav-mrnka还解释了为什么调用该类的简单控制台应用程序能够在1秒内完成调用。