LoginSignup
0
0

【GitHub Actions/Python】自動pytestの際に、testsディレクトリ内のモジュールをimportする

Posted at

状況

このようなコードでGitHub Actionで自動テストを運用しておりました。

python-tester.ymlname: unit-test

on:
  push:
    branches: ["dev", "main"]
  pull_request:
    branches: ["dev", "main"]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11"]

    steps:
      - uses: actions/checkout@v3
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install pytest
          python -m pip install -e .
      - name: Test with pytest
        run: |
          pytest

ここで、テストコード用に書いたモジュールをtestsフォルダに入れておいたところ、no "tests" module foundエラーが。

解決

単純に、レポジトリのルートディレクトリにPythonのPATHを通すべきだっただけですね。

python-tester.yml
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: unit-test

on:
  push:
    branches: ["dev", "main"]
  pull_request:
    branches: ["dev", "main"]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11"]

    steps:
      - uses: actions/checkout@v3
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install pytest
          python -m pip install -e .
      - name: Test with pytest
+       env:
+         PYTHONPATH: ${{ github.workspace }}
        run: |
          pytest

これで解決。

最後に

いいね頂けると泣きながら喜びます><

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0