Updated tests to use transactions and start and stop the Redis server

Use the RedisTransaction object to execute the commands (see http://redis.io/topics/transactions for definition of Redis transactions which are different from relational transactions).

Added a project.json file to EntityFramework.Redis.FunctionalTests so that those tests will run automatically. However you will have to have redis-server installed for this to work. The code looks for an running Redis server and uses that if present, or it will start (and stop) one if you've installed it and have configured the tests to look for it correctly. Otherwise the server is not started and the tests are not run (similar to the ATS tests).
I don't object to that specifically (although, personally, I think I would still find it easier to setup such data programatically, in a test).

I do, however, think that this is approach is overly complex.

How about this: Use IClassFixture instead of an XunitTestFrameworkExecutor to control the Redis server. In order to determine if it is up simply try and connect to it. You can implement IDisposable if you want to tear the server down, but this is not required.