diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml new file mode 100644 index 00000000..f1e00a75 --- /dev/null +++ b/.github/workflows/test-coverage.yaml @@ -0,0 +1,41 @@ +name: Test Coverage + +on: [ pull_request, workflow_dispatch ] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Linux packages for Qt5/Qt6 support and start Xvfb + uses: pyvista/setup-headless-display-action@v3 + with: + qt: true + + - name: Linux OpenCL support + run: | + sudo apt-get update + sudo apt-get install -y pocl-opencl-icd ocl-icd-opencl-dev gcc clinfo + clinfo + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -e .[dev] + + - name: Run tests with coverage + env: + PTO_CI_MODE: 1 + run: | + pytest -v --cov=pytissueoptics --cov-report=xml --cov-report=html + + - name: Upload coverage report + uses: codecov/codecov-action@v4 diff --git a/pyproject.toml b/pyproject.toml index ec35210c..4ba54b80 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,8 +35,8 @@ dependencies = [ [project.optional-dependencies] dev = [ "mockito", - "coverage", "pytest", + "pytest-cov", "ruff", ]