Я удивлен тем, что вы написали, когда я пользуюсь. Я использую mocha с тестами в стиле bdd (описать / it) и просто добавил в мои тесты несколько console.logs, чтобы проверить, соответствуют ли ваши претензии моему случаю, но, по-видимому, они не соответствуют.
Вот фрагмент кода, который я использовал, чтобы увидеть порядок «end1» и «start1». Они были правильно заказаны.
describe('Characters start a work', function(){
before(function(){
sinon.stub(statusapp, 'create_message');
});
after(function(){
statusapp.create_message.restore();
});
it('creates the events and sends out a message', function(done){
draftwork.start_job(function(err, work){
statusapp.create_message.callCount.should.equal(1);
draftwork.get('events').length.should.equal(
statusapp.module('jobs').Jobs.get(draftwork.get('job_id')).get('nbr_events')
);
console.log('end1');
done();
});
});
it('triggers work:start event', function(done){
console.log('start2');
statusapp.app.bind('work:start', function(work){
work.id.should.equal(draftwork.id);
statusapp.app.off('work:start');
done();
});
Конечно, это могло произойти и случайно, но у меня много тестов, и если бы они работали параллельно, у меня наверняка были бы условия гонки, которых у меня нет.
Пожалуйста, обратитесь к этой проблеме также из системы отслеживания проблем Мокко. Согласно ему, тесты запускаются синхронно.