python 在github操作工作流中找不到模块错误

7nbnzgx9  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(157)

我为flask应用程序创建了功能测试。当我在本地环境中输入pytest时,所有测试都工作并通过。当我尝试使用github工作流启动测试时,相同的测试失败。quizproject中的一个模块找不到。我不知道为什么会发生这种情况。我尝试调试它,但没有结果。由于以下错误,CI失败:

Run pytest
ImportError while loading conftest '/home/runner/work/quiz-roads/quiz-roads/tests/conftest.py'.
tests/conftest.py:10: in <module>
    from quizproject.models.users import User as NewUser
E   ModuleNotFoundError: No module named 'quizproject.models.users'
Error: Process completed with exit code 4.

我的项目结构”
x一个一个一个一个x一个一个二个x
类,但出现以下错误-confest.py

import datetime

import pytest
from sqlalchemy import delete

# import the module
from quizproject import create_app
from quizproject import db as _db
from quizproject.models.users import User as NewUser 
from config import TestingConfig
from werkzeug.security import generate_password_hash

...

需要加载的类

import datetime
from importlib.metadata import MetadataPathFinder
from flask_login import UserMixin
from .. import db

metadata = MetadataPathFinder()

class User(UserMixin, db.Model):
    __tablename__ = "users",
    metadata,
    user_id = db.Column(db.Integer, primary_key=True)
    register_time = db.Column(
        db.DateTime, default=datetime.datetime.utcnow(), nullable=False)
    last_login = db.Column(
        db.DateTime, default=datetime.datetime.utcnow(), nullable=False)
    user_email = db.Column(db.String(100), unique=True, nullable=False)
    user_password = db.Column(db.String(100), nullable=False)
    user_name = db.Column(db.String(1000), unique=True, nullable=False)

    def get_id(self):
        return (self.user_id)

可以找到完整的ci代码here
我尝试将tests文件夹移动到quizproject文件夹,但得到相同的错误。

fykwrbwg

fykwrbwg1#

经过几个小时的调试这个问题,我找到了问题的原因。很简单...
我将模块名从大写(Users.py)改为小写(users.py)。Git没有得到更改。我在远程仓库上有不同的字母,在本地仓库上有不同的文件字母。因此“github action”失败,一切都在本地环境中工作。
我还去了git documemtation并使用了core.ignoreCase内部变量。这使得各种变通方法能够使Git在不区分大小写的文件系统上更好地工作,如FAT,NTFS等。
我改变了这个设置临时只为这一个仓库的命令。
git config core.ignorecase false
www.example.com的文件颜色user.py更改为绿色(默认情况下,本地存储库中的新文件)。
我删除并再次添加文件到存储库(users.py)。我提交了文件(users.py)。我不得不从远程存储库删除大写的文件(Users.py)。
它解决了这个问题。

相关问题