簡體   English   中英

無法使用 GitHub 操作從 pytest 中的存儲庫導入腳本

[英]Cannot import script from repository in pytest using GitHub actions

我正在學習使用 GitHub 操作實施自動測試。 我正在嘗試解決以下導入錯誤。

錯誤是:

utils\test_capitalize.py:2: in <module>
    from src.capital import capital_case
E   ModuleNotFoundError: No module named 'src'

我的存儲庫的結構是:

example/
|-- setup.cfg
|-- setup.py
|-- pyproject.toml
|-- .github/
|   |-- workflows/
|   |   |-- ci.yml
|-- src/
|   |-- capital.py
|-- utils/
|   |-- test_capitalize.py

ci.yml的內容是:

name: ci

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build-and-test:

    runs-on: windows-latest
    strategy:
      matrix:
        python-version: [3.8]
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      - name: Build
        run: |
          python -m pip install .
          python -m pip install src
      - name: Test with pytest
        run: |
          python -m pip install pytest
          pytest

我認為python -m pip install. 已經在存儲庫中安裝了所有模塊,我對此有誤解嗎?。

編輯:pytest 文件是一個最小示例(我嘗試在推送之前刪除 src):

import pytest
from src.capital import capital_case


def test_capital_case():
    assert capital_case('semaphore') == 'Semaphore'

在導入模塊之前,將這些行包含在腳本的 header 中。

import sys

sys.path.append("../")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM