[英]How do I import files in Python?
我正在尝试使用pytest
来检查功能-这是我的代码:
# src/return_self.py
def return_self(n):
return n
# tests/return_self_test.py
import pytest
def test_1():
value = return_self(1)
assert value == 1
如何在src
文件中进行要求,以便可以使用pytest
对其进行pytest
? 我已经尝试了几件事:
1. import return_self
2. from src.return_self import *
3. import sys
sys.path.append('../src')
4. import imp
return_self = imp.load_source('return_self', '/source/return_self.py')
我也尝试过在根目录和src
目录中使用__init__.py
文件和不使用__init__.py
文件的情况。 但是每次,我都会在错误E ModuleNotFoundError: No module named 'return_self'
上得到一些变化E ModuleNotFoundError: No module named 'return_self'
。 我该如何要求我的档案?
您可以尝试以下方法:
# tests/return_self_test.py
import os
import sys
import pytest
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from src.return_self import return_self
def test_1():
value = return_self(1)
assert value == 1
首先,您必须检查src /和tests /是否在同一目录中,我检查了在return_self_test.py
导入return_self
的函数,这是这样的:
Testpy使用test_ [prefix]搜索文件,因此我建议将return_self_test.py更改为test_return_self.py
# src/return_self.py
def return_self(n):
return n
# tests/test_return_self.py
import return_self
def test_1():
value = return_self.return_self(1)
assert value == 1
最后,使用以下命令在cmd(正确的路径)或Pycharm终端中进行测试: py.test -v和voila ! 完成 (:
我会建议您使用setuptools
方法( 这可以使您的软件包可分发:D )
项目文件的结构:
.
├── sample
│ ├── __init__.py
│ └── return_self.py
├── setup.cfg
├── setup.py
└── tests
└── test_return_self.py
其中sample/
目录与软件包名称匹配,并且还必须包含源。
最小的setup.py文件内容:
from setuptools import setup
setup(
setup_requires=['pytest-runner'],
tests_require=['pytest'],
name='sample'
)
在这里,我们正在配置我们的测试环境(您可以扩展tests_require
变量以包含更多测试需求)。
setup.cfg文件内容:
[aliases]
test=pytest
在这里,我们指定我们要在开发人员每次执行时运行pytest命令: python setup.py test
测试/ test_return_self.py
from pytest import *
from sample.return_self import return_self
def test_return_self():
assert return_self(4) == 4
样品/ return_self.py
def return_self(n):
return n
因此,下一步是运行:
python setup.py develop
使您的软件包可用(在运行测试时)。 如果您遇到权限拒绝问题,请执行以下操作:将--user
选项附加到上一个命令中,以指示python您想在没有root权限的情况下使用该软件包-简而言之,该软件包将安装在userland目录中。
最后使用以下命令运行测试:
python setup.py test
笔记:
python setup.py develop
只需要运行一次) 参考文献:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.