I'm using Reactive Extensions and ReactiveUI (http://rx.codeplex.com/ & http://www.reactiveui.net/).
When I run my tests using the VS2010 test runner they all pass.
When NCrunch runs them they sometimes fail and sometimes pass (at random it seems).
This will always fail in NCrunch and always pass in VS2010.
Steps to reproduce:
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ReactiveUI;
using System.Reactive.Concurrency;
using Microsoft.Reactive.Testing;
using System.Reactive.Linq;
public class NCrunchBug : ReactiveObject
{
IScheduler scheduler;
List<NCrunchMessage> messages = new List<NCrunchMessage>();
public List<NCrunchMessage> Messages
{
get { return messages; }
}
public NCrunchBug(IScheduler sched = null)
{
if (sched == null)
scheduler = Scheduler.Default;
else
scheduler = sched;
RegisterBusListener();
}
private void RegisterBusListener()
{
RxApp.MessageBus.Listen<NCrunchMessage>()
.ObserveOn(scheduler)
.Subscribe(message => messages.Add(message));
}
}
public class NCrunchMessage
{
public string Message { get { return "NCRUNCH!!!"; } }
}
[TestClass]
public class NCrunchTester
{
[TestMethod]
public void MessageTest()
{
NCrunchBug bug = new NCrunchBug(Scheduler.CurrentThread);
RxApp.MessageBus.SendMessage<NCrunchMessage>(new NCrunchMessage());
Assert.AreEqual(1, bug.Messages.Count);
}
}
Also the send Report from the extension doesn't work :)
Cheers,
nisbus