Github Actions, Python Покрытие и сонар Qube - PullRequest
1 голос
/ 30 марта 2020

Я хочу создать рабочий процесс Github, который выполняет следующие действия:

  1. тестирует мой код с помощью pytest
  2. , запускает 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. Есть идеи, как заставить это работать?

1 Ответ

0 голосов
/ 29 апреля 2020

Ошибка произошла из-за отсутствия s в reportPaths в файле sonar-project.properties.

...