Автор оригинала: Akhator Itua.
Пробовал WebPack, и я люблю его, я хотел использовать CassRunner, чтобы скомпилировать свой код ES6 ES5, используя Babel как транспортер и глотал, как CassRunner. Да, я сделал это ура! Работал, но у меня есть блокировщик, когда я начал писать тесты для моей API. Испытательное покрытие отказалось показать после того, как делать много настройки. Пройдя через Интернет, я не мог найти решение, поэтому я прибегал к решению его самостоятельно после получения кусочков из Интернета.
Ниже приводится руководство по тому, как я это сделал.
В вашем Гульпфиль
Импортные зависимости
import gulp from 'gulp'; import loadPlugins from 'gulp-load-plugins'; import path from 'path'; import shell from 'gulp-shell';
//загрузите плагины глотания в плагины
Переменная
const plugins = loadPlugins();
//компилируйте все бабел JavaScript на ES5 и место в папке Dist
const paths = { js: ['./**/*.js', '!dist/**', '!node_modules/**', '!./server/tests/**'] };
//компилируйте все бабел JavaScript на ES5 и поместите его в Dist Dir
gulp.task('babel', () => gulp.src(paths.js, { base: '.' }) .pipe(plugins.babel()) .pipe(gulp.dest('dist')) );
//Это для реляционной базы данных для миграции, если это требуется
gulp.task('migrate', shell.task([ 'cross-env NODE_ENV=test sequelize db:migrate', ]));
Это где охват случается с NYC. Это говорит NYC показать все покрытия в тестовом каталоге после того, как MOCHA запускает все тесты в каталоге
gulp.task('coverage', shell.task([ 'cross-env NODE_ENV=test nyc mocha ./server/test/**/*.js', ]));
//Перезагрузите сервер с каждые изменения, сделанные в файл
gulp.task('nodemon', ['babel'], () => plugins.nodemon({ script: path.join('dist', 'index.js'), ignore: ['README.md', 'node_modules/**/*.js', 'dist/**/*.js'], ext: 'js', tasks: ['babel'] }) ); gulp.task('test', ['migrate', 'coverage']); gulp.task('default', ['nodemon']); gulp.task('production', ['babel']);
Мы еще не закончены, когда вы запускаете тест, вы узнаете, что ваше покрытие просто показывает процент без тестовых файлов.
Далее – войти в ваш Package.json
и добавить …
"nyc": { "require": [ "babel-register" ], "reporter": [ "lcov", "text", "html" ], "sourceMap": false, "instrument": false, "exclude": [ "the test file you want to exclude from coverage" ] }
Ага! Мы сделали это. Давайте праздновать
Не забывайте любить. Не стесняйтесь следовать за мной на твиттер