akkadotnet/akka.net — pull request #497 by smalldave (2014-11-11 10:35:43+00:00)
Title: Executables for multi-node testing and first multi-node cluster test

Here are the beginnings of what is needed for the cluster integration tests.
This adds two new executables
**Akka.MultiNodeTestRunner** and **Akka.NodeTestRunner** (better names appreciated).

Both executables use xunit 2.0 to do unit test discovery and execution.
Multi-node tests will have to be written using xunit.

**MultiNodeTestRunner**
Looks at the test assembly specified as a command line argument and picks up all the relevant tests that it should run (currently all tests that end in a number, should be a bit more sophisticated).

A multi-node test looks like this
```csharp
public class InitialHeartbeatMultiNode1 : InitialHeartbeatSpec
{
}

public class InitialHeartbeatMultiNode2 : InitialHeartbeatSpec
{
}

public class InitialHeartbeatMultiNode3 : InitialHeartbeatSpec
{
}

public abstract class InitialHeartbeatSpec : MultiNodeClusterSpec
```
The MultiNodeTestRunner looks at this, works out that it needs to create 3 processes to run 3 nodes for the test.
It executes NodeTestRunner in each process to do this passing parameters on the command line

**NodeTestRunner**
Picks up the parameters passed to it and executes the test specified.

I've implemented JoinInProgressSpec. It all seems to work with nodes waiting to enter barriers correctly.
There are also a number of fixes for Remote.TestKit in here.

Thoughts much appreciated.