Посмотрите и повторите тесты Jest JS

Документация Jest предлагает использовать npm test для выполнения тестов.

Есть ли способ просмотра исходного кода и тестов для автоматического повторного запуска тестов Jest при изменении соответствующих файлов?


person Martin Dow    schedule 24.08.2014    source источник


Ответы (6)


Спасибо Эрин Стэнфилл за указание, что в Jest уже есть поддержка автоматически перезапускается. Лучшей конфигурацией для package.json будет

{
  "scripts": {
    "test": "jest"
  }
}

Чтобы включить режим часов, просто используйте

$ npm run test -- --watch

Or

$ yarn run test --watch
person wuct    schedule 03.05.2015
comment
Важно отметить, что nodemon прервет тесты и запустит их снова, если во время выполнения тестов произойдет изменение. grunt watch не будет, он продолжит текущий тестовый прогон, игнорируя изменения, происходящие во время выполнения тестов. - person portenez; 07.03.2016
comment
Может быть, было бы лучше отредактировать просто удалить первый ответ? Редактирование отлично работает для меня, и, на первый взгляд, было непонятно читать оба вместе. - person SimplGy; 05.04.2017
comment
У меня есть файл с именем string.utility.spec.js, и он будет запущен при выполнении теста запуска npm, но не при запуске теста запуска npm --watch. Если переименовать файл в string.spec.js, он будет выбран и запущен. Странный. - person TigerBear; 11.04.2018
comment
@TigerBear Вы можете перезаписать это поведение, см. facebook.github .io/jest/docs/ru/ - person wuct; 12.04.2018
comment
зачем нам -- перед -- смотреть? - person Vishal Anand; 02.09.2018
comment
@VishalAnand npm передаст все аргументы после -- непосредственно сценарию. ссылка. - person wuct; 05.09.2018
comment
watch также можно добавить в скрипты: { test: jest --watch }, а затем можно просто использовать npm run test - person Saif Asad; 26.05.2019
comment
Вы даже можете yarn test --watch! - person Nero Vanbiervliet; 26.02.2020

Если у вас настроен npm test, вы можете просто запустить npm test -- --watch.

person Erin Stanfill    schedule 22.10.2015

Запускайте тесты в режиме часов.

jest --watch fileName.test.js

Согласно документации

Запустите тесты, которые соответствуют этому имени спецификации (в основном совпадают с именем в describe или test).

jest -t name-of-spec
// or in watch mode
jest --watch -t="TestName"
person dipenparmar12    schedule 03.02.2020

В этом примере показано, как использовать gulp для запуска тестов Jest с использованием jest-cli, а также tdd задача gulp для просмотра файлов и повторного запуска тестов Jest при изменении файла:

var gulp = require('gulp');
var jest = require('jest-cli');

var jestConfig = {
    rootDir: 'source'
};

gulp.task('test', function(done) {
    jest.runCLI({ config : jestConfig }, ".", function() {
        done();
    });
});

gulp.task('tdd', function(done) {
    gulp.watch([ jestConfig.rootDir + "/**/*.js" ], [ 'test' ]);
});

gulp.task('default', function() {
    // place code for your default task here
});
person Martin Dow    schedule 31.05.2015
comment
По какой-то причине, несмотря на то, что я использую папку по умолчанию __tests__, она не работает с этой jestConfig. После прочтения документов и небольшого воспроизведения это работает для меня: var jestConfig = { rootDir: "__tests__" } - person Jaime Agudo; 29.03.2016

  1. установите пару пакетов Grunt:

    npm install grunt-contrib-watch grunt-exec --save-dev
    
  2. сделайте Gruntfile.js со следующим:

    module.exports = function(grunt) {
        grunt.initConfig({
            exec: {
                jest: 'node node_modules/jest-cli/bin/jest'
            },
            watch: {
                files: ['**/*.js'],
                tasks: ['exec:jest']
            }
        });
        grunt.loadNpmTasks('grunt-contrib-watch');
        grunt.loadNpmTasks('grunt-exec');
    }
    
  3. затем просто запустите:

    grunt watch
    
person bjfletcher    schedule 11.12.2014

Если вы хотите запустить один файл в режиме просмотра:

yarn run test --watch FileName.test.jsx
person WQTM    schedule 11.02.2021