Hi Aaron -
Thanks for posting!
As far as I'm aware, the main performance bottleneck in MS Fakes is in the generation of the fakes assemblies. For large assemblies, this build task does not perform well at all. I have little experience with SharePoint but I would expect that SharePoint reference libraries are not small. A tiny test library shimming out mscorlib.dll and system.dll will take upwards of 10 seconds to generate fakes assemblies even on a very high end machine.
The good news is that usually the generation of Fakes assemblies only needs to be performed once per workspace. You'll also notice that if you build your project using Visual Studio, the fakes assemblies don't get generated with every build.
Because NCrunch creates multiple workspaces per test project in order to perform parallel testing, it will probably need to build the fakes assemblies multiple times before the workspaces are saturated enough to allow for good performance. If you have your
max number of processing threads set to 5, NCrunch will need to build at least 5 workspaces before the performance improves. This means it'll need to build your project at least 5 times with sluggish speed.
Try keeping an eye on your project build times. Make sure you have the 'Processing Time' column showing in your tests window, and turn on the 'Show passing tests' option so that all your projects are showing. What kind of build times do you see next to the test projects using fakes? Do the build times improve after you've been using the engine for a while?
Cheers,
Remco