Я запускаю некоторые асинхронные тесты с Mocha, но некоторые будущие тесты не могут быть выполнены до тех пор, пока предыдущие не будут завершены. Для этого, я могу просто использовать done()
обратного вызова для запуска их синхронно:Mocha запускает асинхронные тесты параллельно с done() callback
describe('first operations', function() {
it('should do something', function(done) {
longOperation(function(err) {
done();
});
});
it('should do something', function(done) {
longOperation(function(err) {
done();
});
});
});
describe('second operations', function() {
it('should do something', function(done) {
longOperation(function(err) {
done();
});
});
it('should do something', function(done) {
longOperation(function(err) {
done();
});
});
});
Это правда, замедляет всю работу, потому что я застрял работает каждый it()
блок синхронно. Я хотел бы выполнить внутренние тесты асинхронно, и каждый из них описывает блок синхронно, но обратный вызов done()
не работает таким образом (по крайней мере, используя async
).
Я делаю что-то неправильно или это просто не поддерживается? Если нет, есть ли способ, которым я могу обойти это, чтобы достичь своей цели?
describe('first operations', function(done) {
async.parallel([
function(callback) {
it('should do something', function() {
longOperation(function(err) {
callback();
});
});
},
function(callback) {
it('should do something', function() {
longOperation(function(err) {
callback();
});
});
}
], function(err) {
done();
});
});
describe('second operations', function(done) {
async.parallel([
function(callback) {
it('should do something', function() {
longOperation(function(err) {
callback();
});
});
},
function(callback) {
it('should do something', function() {
longOperation(function(err) {
callback();
});
});
}
], function(err) {
done();
});
});
Возможный дубликат [Отключение мокко описывается параллельно] (http://stackoverflow.com/questions/28641646/kicking-off-mocha-describes-in-parallel) – Louis
Согласовано. Не знаю, как я этого не видел. – brandonscript