It should always be encouraged to use the test harness to test the complete flow end to end based on its real components rather than stubbing consumers or producers.
An unforeseen side effect of doing this is that you need to start the flow and stop the flow to correctly initialise the consumer/producers i.e. for JMS or whatever other resources they manage. This means any managed resource in the flow is started/stopped - including any scheduled based callbacks managed via the managedResource contract.
If these scheduled callbacks happen immediately (whilst the test is in progress) then is screws the expectations comparison with the actuals. Not sure why, but this is definitely the cause of some tests failing intermittently.
To be further investigated.