我是使用pytest的新手,并且通常会运行自动化测试,并且我想了解在包含类的python包中运行自动化测试的最佳实践。我有一个软件包p
,其中包含类A
,B
和C
。我有一个文件test_p
,其中包含四个测试功能。为了测试这些功能,我需要导入A
,B
和C
。我目前这样做的方法是在我的__init__.py
存储库中有一个p
文件,该文件包含以下几行:
from p.A import A
from p.B import B
from p.C import C
然后,在包含p
目录的目录中,我启动python并运行以下命令:
from p import *
import pytest
然后,我在p
内部和python运行中导航:
pytest.main([`test_p`])
对于我来说,这种测试程序包的过程似乎并不是最佳选择,而且我相信还有更好的方法可以做到。理想情况下,我希望能够仅在OS终端和/或运行test_p
的python终端中运行脚本,并使该脚本存在于p
目录中。问题是我无法从A
本身导入B
,C
和p
。有没有一种方法可以运行将运行test_p
(或直接运行test_p
)而不必在目录之间导航的脚本?
答案 0 :(得分:0)
我找到了一个简单的解决方案:添加行
from p import *
到test_p
文件,并在p
的父目录中,在python中运行以下两行代码:
import pytest
pytest.main(['p/test_p'])