Преди известно време се опитах да изпълня тестове в React и да импортирам резултатите в Azure DevOps. Въпреки че изглежда просто, не намерих много информация за него.

В обобщение:

  1. Инсталирайте от npm jest-junit-reporter

2. Уверете се, че имате следния ред в package.json

“test”: “react-scripts test — testResultsProcessor ./node_modules/jest-junit-reporter”

3. В Azure DevOps добавете една Powershell задача със следните редове:

($env:CI = “true”)
npm тест;

4. В Azure DevOps добавете една Задача за публикуване на тестови резултати, за да прочетете test-report.xml във формат JUnit.

С повече подробности:

  1. Инсталирайте jest-junit-reporter

Отворете Powershell или cmd терминал и отидете във вашата директория project\ClientApp. Трябва да инсталирате пакета https://www.npmjs.com/package/jest-junit-reporter, който получава от jest тестовия изход и експортира резултатите като JUnit файл. Просто напишете

npm i jest-junit-reporter

и пакетът ще бъде инсталиран в папката node_modules.

2. Посочете новодобавения репортер

Отворете package.json в папката project\ClientApp. Трябва да добавите репортера към тестовата конфигурация.

Сега, ако стартирате npm тест, ще видите нов файл test-report.xmlпод ClientAppпапка с резултатите от теста. Това е файлът, който искаме да импортираме в Azure. Той е във формат JUnit. Струва си да отделите време, за да го разгледате и разберете структурата му.

3. Изпълнете тестовете в Azure DevOps

Предполагаме, че вече имате Build Pipeline за този проект. След като извлечете изходния код, добавете нова задача на PowerShell, за да инсталирате всички пакети.

Добавете втора задача на PowerShell, за да изпълните тестовете

Уверете се, че сте добавили командата ($env:CI = “true”) . Това ще изпълни тестовете, без да изисква повече информация. Ако не го добавите, тестовете никога няма да завършат, тъй като ще чакат въвеждане от потребителя.

4. Прочетете изходния файл на теста

Добавете нова задача за Публикуване на резултатите от теста със следната конфигурация:

Формат на резултатите от теста: JUnit

Файлове с резултати от тестове: test-report.xml

Папка за търсене: $(System.DefaultWorkingDirectory)\ClientApp

След като изпълните конвейера, трябва да видите резултата под Планове за тестване\Изпълнения.

Ако отворите Изпълнии отидете на Резултати от теста, ще видите всички тестове и резултата за всеки от тях.

Azure има един проблем, той не разпознава тестови пакети. Например, когато изпълнява следния тест

той ще съхранява само името на теста MsgBox: изобразява без срива не името на пакета MsgBox. Други платформи като Jenkins са по-добри в този момент.

Може да погледнете в jest-junit-reporter. Той е много прост и можете лесно да го настроите, за да отговаря на вашите нужди.

Приятно тестване!