如何使用pytest对具有类的包运行自动化测试?

时间:2019-07-08 00:37:21

标签: python class package pytest

我是使用pytest的新手,并且通常会运行自动化测试,并且我想了解在包含类的python包中运行自动化测试的最佳实践。我有一个软件包p,其中包含类ABC。我有一个文件test_p,其中包含四个测试功能。为了测试这些功能,我需要导入ABC。我目前这样做的方法是在我的__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本身导入BCp。有没有一种方法可以运行将运行test_p(或直接运行test_p)而不必在目录之间导航的脚本?

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方案:添加行 from p import *test_p文件,并在p的父目录中,在python中运行以下两行代码:

import pytest
pytest.main(['p/test_p'])