小编Lom*_*ank的帖子

无法使用数据文件.coverage:无法打开数据库文件

推送到 GitHub 时出现奇怪的权限问题。我有一个测试作业,它运行覆盖范围的测试,然后在每次推送和拉取请求时将结果推送到 codecov。但是,这种情况仅适用于 root 用户。

如果与digitalshop用户一起运行,则会抛出错误:

Couldn't use data file '/digital-shop-app/.coverage': unable to open database file
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在 docker 容器中运行覆盖率,这样它就不会抛出此错误?我的猜测是这是因为权限。

docker-compose.yml:

version: '3.9'

services:
  test:
    build: .
    command: >
      sh -c "
        python manage.py wait_for_db &&
        coverage run --source='.' manage.py test mainapp.tests &&
        coverage report &&
        coverage xml
      "
    volumes: 
      - ./digital-shop-app:/digital-shop-app
    env_file: .env
    depends_on: 
      - db

  db:
    image: postgres:13-alpine
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASS}
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM python:3.9-alpine3.13

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /requirements.txt
COPY ./digital-shop-app …
Run Code Online (Sandbox Code Playgroud)

python code-coverage dockerfile alpine-linux

6
推荐指数
1
解决办法
3571
查看次数

标签 统计

alpine-linux ×1

code-coverage ×1

dockerfile ×1

python ×1