Как я могу использовать --changedsince и --onlychanged в шутку?

Я хочу использовать для шутки флаг изменено и onlyChanged. Я изменил множество тестов, а также файлы, от которых зависят тесты. И согласно документации флагов jest cli:

changedSince: Runs tests related the changes since the provided branch. If the current branch has diverged from the given branch, then only changes made locally will be tested.

onlyChanged: Alias -o. Attempts to identify which tests to run based on which files have changed in the current repository. Only works if you're running tests in a git/hg repository at the moment and requires a static dependency graph (ie. no dynamic requires).

Но когда я запускаю jest --changedSince=master или jest --onlyChanged, он запускает 0 тестов, вообще ничего не передавая в терминал.

jest --listTests перечисляет все тесты. Однако, когда я запускаю jest --listTests --changedSince=master или jest --listTests --onlyChanged, в нем нет тестов.

4
0
6 627
2

Ответы 2

Я обнаружил, что --changedSince и --onlyChanged тоже немного напуганы. Однако вы можете использовать пухлый и Jest --findRelatedTests и добавить их в ловушку перед фиксацией.

--findRelatedTests {spaceSeparatedListOfSourceFiles}: Find and run the tests that cover a space separated list of source files that were passed in as arguments. Useful for pre-commit hook integration to run the minimal amount of tests necessary. Can be used together with --coverage to include a test coverage for the source files, no duplicate --collectCoverageFrom arguments needed.

Вот изменения, которые вам нужно сделать в вашем файле package.json.

{
  "scripts": {
    "test": "CI=true jest",
    "test:staged": "CI=true jest --env=jsdom --findRelatedTests"
  }
}

И,

"lint-staged": {
  "src/**/*.js": [
    "test:staged",
    "git add"
  ]
}

Таким образом, при каждой фиксации Jest будет запускать тесты только для связанных исходных файлов. Не забудьте установить переменную окружения CI=true, иначе ваши тесты будут работать в режиме просмотра и никогда не закончатся.

Если вы все же хотите запустить полный набор тестов, npm test подойдет. Кроме того, лучше иметь среду CI для запуска всех ваших тестов, когда вы нажимаете на ветку или отправляете запрос на перенос.

вы можете использовать флаг '-o' для запуска измененного тестового файла в режиме просмотра. https://jestjs.io/docs/en/cli

jest -o

Другие вопросы по теме