мне нужно создать несколько файлов перед интеграционного теста:мокко, интеграционные тесты JS и асинхронный IO
before(function(done) {
fs.mkdir('tmp');
fs.mkdir('tmp/css');
fs.mkdir('tmp/js');
fs.mkdir('tmp/lib');
fs.open('tmp/index.htm', 'w');
fs.open('tmp/some.js', 'w');
fs.open('tmp/some.css', 'w');
fs.open('tmp/css/main.css', 'w');
fs.open('tmp/css/sub.css', 'w');
fs.open('tmp/js/main.js', 'w');
fs.open('tmp/lib/jquery.js', 'w');
done();
});
Проблема заключается в том, что я получаю:
fs: missing callback Error: ENOENT, mkdir 'tmp/css'
fs: missing callback Error: ENOENT, mkdir 'tmp/js'
fs: missing callback Error: ENOENT, mkdir 'tmp/lib'
fs: missing callback Error: ENOENT, open 'tmp/css/main.css'
fs: missing callback Error: ENOENT, open 'tmp/css/sub.css'
fs: missing callback Error: ENOENT, open 'tmp/js/main.js'
fs: missing callback Error: ENOENT, open 'tmp/lib/jquery.js'
Я думаю, что проблема в том, что он пытается открыть файлы синхронно до создания каталогов. Я мог бы использовать fs.mkdirSync
и передавать обратный вызов каждому, но тогда у меня есть проблема с done();
. Как должен выглядеть этот код, если я хочу, чтобы он сделал правильный путь?