作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个关于 Python 和单元测试的非常基本的问题。
我有一个这样的目录结构。
Project
|
|-lib
|
|-__init__.py
|-class.py
|
|-tests
|
|-__init__.py
|-test_class.py
现在这是我的 test_class.py 的内容。如果我从根文件夹导入 lib.class,它工作正常。但是,如果我从其他地方导入文件,它就不起作用了。
import unittest
from lib.class import Class
class TestClass(unittest.TestCase):
def testClass(self):
// do some test
def main():
unittest.main()
if __name__ == '__main__':
main()
当我运行测试时我得到了这个错误
Traceback (most recent call last):
File "tests/test_class.py", line 2, in
from lib.class import Class
ImportError: No module named lib.class
不确定如何从不是根文件夹的另一个文件夹导入文件。
最佳答案
更好的解决方案是创建一个 virtualenv 并以开发人员模式安装项目。这使您无需重新安装即可修改和执行代码。
virtualenv venv
source venv/bin/activate
pip install -e .
在测试中,您现在只需包含 fqdn。
from project.lib.class import Class
请记住,您需要使用 setuptools正确定义项目。
关于python - 如何从python中的unittest导入一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15351546/
我是一名优秀的程序员,十分优秀!