Запуск Jest тестов на Appveyor из powershell - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь запустить свои тесты Jest на Appveyor. Я использую основной шаблон asp.net для приложения реагирования (которое использует приложение create-реагировать). Когда я запускаю тесты локально (с npm run test), тесты работают нормально, я вижу PASS src\App.test.js с завершением тестов, которые прошли.

Однако в Appveyor из консоли выдается ошибка, которая приводит к сбою сборки. Сообщение об ошибке PASS src\App.test.js. Таким образом, может показаться, что из-за пробега выдается ошибка, несмотря на то, что она действительно проходит. Я проверил и $LASTEXITCODE это -1

App.Test.js

it('Runs tests', () => { expect(true).toBeTruthy(); });

Appveyor.yml

test_script: - ps: .\build\appveyor\js-tests.ps1

. \ Сборка \ appveyor \ JS-tests.ps1

($env:CI = $true) -and (npm run test)

Я устанавливаю среду CI, поскольку это не позволяет тестам использовать "watch". Сценарий js-tests делает некоторые другие вещи с сортировкой местоположений файлов, небольшим количеством журналов и т. д., но я не думаю, что это уместно, если сообщение возвращается как пройденный тест.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Альтернативой ответу @ilyaf было использование jest-silent-reporter, которое не выдает результат при прохождении тестов. Это работает по той же причине, что и ответ ilyaf, потому что npm записывает вывод в stderr, а запись ничего не решает.

для установки: npm install jest-silent-reporter --save-dev

в вашем пакете. Json

"scripts": {<br> "test": "react-scripts test --env=jsdom --reporters jest-silent-reporter", },

обратите внимание, я определяю репортера здесь.

Я бы также порекомендовал добавить журнал после вызова npm test, чтобы в ваших журналах было какое-то подтверждение того, что он запущен.

0 голосов
/ 05 июля 2018

Npm иногда записывает нормальный вывод в stdErr, который пользовательский хост PowerShell в AppVeyor воспринимает как ошибку. Решение состоит в том, чтобы запустить эти тесты в CMD. Оберните их в файл .cmd и запустите с префиксом - cmd:.

...