When running unit tests (for example with xUnit) and code that requires a synchronization context, one might get the test failing with the message
The current SynchronizationContext may not be used as a TaskScheduler.
The easiest way to resolve this is to supply your own SynchronizationContext to a unit test class, for example adding a static constructor (for xUnit) or in the SetUp method (in NUnit).
static MyTests() { SynchronizationContext.SetSynchronizationContext(new SynchronizationContext()); }
Note: xUnit supplies a Synchronization context when using async tests, but when running Reactive Extensions or TPL code it seems we need to supply our own.