У меня есть конфигурация Jenkins, которая выполняет серию юнит-тестов pytest после коммитов в Github.Я запускаю свои тесты, используя Jenkinsfile:
withEnv(['PATH+EXTRA=$PYTHON_HOME) {
sh script: "pip install virtualenv"
echo "Checking out Test suite repo."
sh label: "Create virtual environment", script: 'virtualenv venv'
sh label: "Activate virtual environment", script: 'source venv/bin/activate'
sh label: "Install dependencies", script: 'pip install --user -r requirements.txt'
sh label: "Disable pytest error", script: 'set +e'
sh label: 'execute test suite, exit upon first failure', script: "pytest -rxs -k 'test-stuff' --no-snapshot --junit-xml reports/results.xml run_tests.py"
sh label: 'Enable errors', script: 'set -e'
}
post {
always {
junit allowEmptyResults: true, testResults: 'reports/results.xml'
}
}
Как вы можете видеть, результаты теста junit записываются в папку с именем reports
в файл с именем results.xml
.Это то, о чем документация запрашивает , чтобы Дженкинс мог подобрать результаты этих испытаний.
Однако, когда я нажимаю на вкладку Tests
в Blue Ocean, я вижу следующий экран:
Однако,если я захожу в свое рабочее пространство в Jenkins и перечисляю содержимое моего каталога results
, я отчетливо вижу записанный недавно созданный файл results.xml
: