Я хочу создать рабочий процесс Github, который выполняет следующие действия:
- тестирует мой код с помощью
pytest
- , запускает Sonar Qube Cloud для анализа кода и показывает мой тест покрытие!
Насколько я понимаю, SonarQ нужен файл coverage.xml
для отображения покрытия кода. Это может быть сгенерировано с помощью
pytest --cov=./ --cov-report=xml --doctest-modules
Согласно эта статья coverage.xml
должна быть доступна под /github/workspace/coverage.xml
.
Таким образом, я указываю свой sonar-project.properties
в папка root проекта:
sonar.organization=pokemate
sonar.projectKey=PokeMate_name-generator
sonar.sources=.
sonar.python.coverage.reportPath=/github/workspace/coverage.xml
файл моих действий build.yml
:
on:
push:
branches:
- master
- develop
- sonar-qube-setup
jobs:
build:
runs-on:
- ubuntu-latest
steps:
# Checkout repo
- uses: actions/checkout@v2
# Dependencies
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# Test
- name: Test with pytest
run: |
pytest --cov=./ --cov-report=xml --doctest-modules
# Sonar Qube
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
Однако в SonarQ он по-прежнему показывает 0% покрытия тестами, что, вероятно, связано с тем, что он не может найти coverage.xml
. Есть идеи, как заставить это работать?