Рубрики
Без рубрики

Как показать тестовое покрытие с помощью Gulp в качестве задача Runner и Mocha

Пробовал WebPack, и я люблю его, я хотел использовать CassRunner, чтобы скомпилировать свой код ES6 ES5, используя Babel как транспортер и глотал, как CassRunner. Да, я сделал это ура! Это сработало, но я получил …

Автор оригинала: 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"
    ]
  }

Ага! Мы сделали это. Давайте праздновать

Не забывайте любить. Не стесняйтесь следовать за мной на твиттер