Я использую gulp-mocha для тестирования. Мне также нужно задействовать другие библиотеки, вроде chai, во всех тестах. Я мог бы написать что-то вроде этого внутри каждого теста:
const {assert} = require('chai');
Но я бы хотел автоматизировать подключение подобных библиотек, т.к. тот же chai все равно будет использоваться в 99% моих тестов. Т.е. грубо говоря, я не хочу копировать require всех нужных библиотек в каждый файл с тестами. Нужно, чтобы библиотеки (а лучше определенные их части, вроде assert у chai) сразу же были доступны как глобальные переменные.
Я знаю, что у mocha есть такие параметры, как global(s) и require. Однако, судя по данному вопросу, gulp-mocha не поддерживает require, а как работает global, я без понятия. Из оф. документации толком ничего про global не понял.
Мой таск с тестами на данный момент:
const test = () => gulp.src(files.src.js, {read: false})
.pipe(mocha({
globals: {chai},
reporter: 'mocha-multi',
reporterOptions: {
spec: '-',
tap: files.reports.jsTest
}
}));
Нашел ответ здесь - https://stackoverflow.com/a/31290131/11195930 .
Gulp-mocha на самом деле поддерживает require, как и любые другие параметры mocha. В свою очередь require должен передавать параметры не через module.exports, а просто в виде глобальных переменных. Причем переменные нужно задавать именно как свойства объекта global. В итоге написал небольшой скрипт, который и передаю в require:
// Вспомогательная функция, позволяет как можно более кратко экспортировать библиотеки
function exportLibs(libs) {
for (let libName in libs) {
const lib = require(libName);
if (libs[libName] === true) {
global[libName] = lib;
break;
}
for (let name of libs[libName])
global[name] = lib[name];
}
}
// Здесь указываются все нужные библиотеки
exportLibs({
chai: ['assert']
});
Недавно начал верстку сайтаЯ задал transition почти каждому элементу на сайте - работает все красиво и слажено
Есть такой код,который должен выводить информацию о 3 книгах, но код останавливается после 2ой и ошибка(Индекс 3 выходит за пределы длины 3) если...
У меня есть домашнее задание, но прохожу обучение на английском и не могу до конца понять что конкретно хотят и что нужно сделатьВ оригинале...
Пытаюсь начать изучать SpringНо не могу понять как создать элементарный объект, передав в конструктор значения