python - py.test 无法导入我的模块

标签 python unit-testing python-3.x pytest

我正在努力获得正确的 python 导入。我想要实现的是拥有一个包含多个源文件的模块和一个包含单元测试的测试文件夹。

无论我做什么,我都无法让 py.test-3 执行我的测试。我的目录布局如下所示:

.
├── module
│   ├── __init__.py
│   └── testclass.py
└── tests
    └── test_testclass.py

__init__.py 文件如下所示:

__all__ = ['testclass']

testclass.py 文件如下所示:

class TestClass(object):

    def __init__(self):
        self.id = 1

我的单元测试是这样的:

import pytest
from module import TestClass

def test_test_class():
    tc = TestClass()
    assert(tc.id==1)

无论我如何调用 py.test-3,我都会得到一个:

E   ImportError: No module named 'module'

最佳答案

首先,除非您更改tests/test_testclass.py,否则您需要更改module/__init__.py,如下所示:

from .testclass import TestClass

__all__ = ['TestClass']

而且,当你运行 py.test set PYTHONPATH让解释器知道何时查找模块的环境变量:

PYTHONPATH=. py.test

关于python - py.test 无法导入我的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34083214/

相关文章:

python - 计算合并字符串中的元音数量

Python - 单击命令行单元测试用例以获取来自命令行功能的输入提示

php - 对网站进行单元测试

python - 区分python函数和类函数

Python计数/字典计数

python - 在 Pandas 数据框中添加聚合/摘要行

python - 将字符串查找列表转换为 python 中的列表

python - 在子目录中查找部分文件名

python - Google 有针对 Python 的官方图像 API 吗?

ios - 模拟 CKContainer 用于单元测试