Я искал решения по тому же вопросу.Ни один из представленных ответов полностью не подходит для моей ситуации, когда:
- Я не хотел иметь никаких дополнительных зависимостей.
- У меня уже был установлен глобальный узел узла.
- Я не хотел вести тестовый файл.
Итак, окончательное решение для меня - объединить идеи Яна и mbmcavoy:
// nodeunit tests.js
const path = require('path');
const fs = require('fs');
// Add folders you don't want to process here.
const ignores = [path.basename(__filename), 'node_modules', '.git'];
const testPaths = [];
// Reads a dir, finding all the tests inside it.
const readDir = (path) => {
fs.readdirSync(path).forEach((item) => {
const thisPath = `${path}/${item}`;
if (
ignores.indexOf(item) === -1 &&
fs.lstatSync(thisPath).isDirectory()
) {
if (item === 'tests') {
// Tests dir found.
fs.readdirSync(thisPath).forEach((test) => {
testPaths.push(`${thisPath}/${test}`);
});
} else {
// Sub dir found.
readDir(thisPath);
}
}
});
}
readDir('.', true);
// Feed the tests to nodeunit.
testPaths.forEach((path) => {
exports[path] = require(path);
});
Теперь я могу запустить все свои тестыНовый и старый, с помощью простой команды nodeunit tests.js
.
Как видно из кода, тестовые файлы должны находиться внутри папок tests
, а в папках не должно быть никаких других файлов.