Hi Remco,
the specific project had an issue with a license check some time ago so I had set up some capabilitites to not run the project in the grid. Later on I found a workaround posted here in the forum which stated I could exclude the .licx file by adding a condition to the .csproj file.
After I did this I was able to build the project also in the grid without any issue.
The strange thing is that some minutes ago when I discovered that the projects get build only locally, I saw that VS2013 was consuming 2.3-2.5 GB RAM but was still running at 20% or so (so 1 core completely involved into doing something whereas I did nothingg - just sitting and waiting). So I started up another VS and attached it to the VS process. It took a long time to attach (had to load a lot of symbols from the symbol server) but when it was finally attached I paused it so get an idea what it could do. I did not get any, so I pressed Continue. When I then switched back to the original VS, I saw that now it was executing all the pending tests etc. on the grid.
For 1 grid node I also got an error stating that the disk is full (I use a RAMDisk with 2 GB RAM there), so I restarted the node which triggers the cleanup on the RAMDisk.
So I'm not sure whether this is an issue with the executable itself, also because I don't have tests that rely on it.
======
Update:
I just changed some code in the executable project. NCrunch run the tests only on the local nodes, but not on the grid. After NCrunch was finished (according to the UI), I paused VS again.
Then I inspected the threads and I saw 1 NCrunch related thread with following stacktrace:
Not Flagged 19388 104 Worker Thread Worker Thread nCrunch.Core.dll! . Lowest
nCrunch.Core.dll! .(int )
nCrunch.Core.dll!nCrunch.Core.Processing.ResourceUsageStamp.ToString()
mscorlib.dll!string.Concat(object[] args)
nCrunch.Core.dll!nCrunch.Core.Grid.Messages.NodeWorkRequestMessage.ToString()
mscorlib.dll!string.Concat(object arg0, object arg1, object arg2)
nCrunch.Core.dll!nCrunch.Core.Grid.Connectivity.NetworkClientMessageReceivedEvent.GetEventSummary()
nCrunch.Common.dll!nCrunch.Common.RoutedEvent.ToString()
mscorlib.dll!string.Concat(object[] args)
nCrunch.Core.dll!nCrunch.Core.Threading.CoreMessageDispatcher.()
nCrunch.Core.dll!nCrunch.Core.Threading.PooledWorkItem.Start()
nCrunch.Core.dll!nCrunch.Core.Threading.ThreadFactory.(object )
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state)
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()
mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
After I copied the stacktrace and resumed VS, I switched back to the first VS. At that time I saw that NCrunch was again starting to build and execute the tests on the grid nodes. If I now run the tests via the Tests window, they are executed in the grid (40 nodes in parallel).
The strange thing now is that now when I change the same code (eg. undo and redo), all tests get executed concurrently.
But sometimes NCrunch doesn't execute the tests at all (engine mode is "Run all tests automatically"), it solely builds the executable project on the grid nodes.