pytest不执行test / __ init__.py文件

时间:2019-05-09 13:47:23

标签: python pytest python-packaging

我有以下问题: 我在那里有一个项目和一个小图书馆,还有一个lib的测试目录,类似这样:

项目\

+ mylib \

++ test \

在test__init__.py中,我有以下代码:

SCRIPT_DIR = os.path.dirname(os.path.realpath(os.path.join(os.getcwd(), os.path.expanduser(__file__))))
sys.path.append(os.path.normpath(os.path.join(SCRIPT_DIR, "test_data_files")))

因此,只需更新syspath即可使用测试数据打开某些文件。 当我右键单击Pycharm中的目录运行测试时,它将成功执行,但是当我运行时

python -m pytest lib/test

它不执行test / init .py文件,并且由于出现FileNotFoundError而失败,因为它可以找到测试数据文件。

这种行为的原因是什么,我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果在lib/test中运行pytest,它将查找test_*.py文件并在其中运行测试。如您所知,它不会导入test程序包,因此永远不会导入__init__。 如果您“全局”运行pytest,它将导入运行测试的软件包,以便导入__init__

要修复,可以使用pytest的conftest.py