我们对许多应用程序进行了大量重复测试(testinfra)。我想创建由应用程序特定的测试类继承的BaseClass,以减少重复测试的样板(此服务正在运行吗?此端口正在侦听吗?)。
我们在这样的结构中进行测试
/tests/{app-name}/test_{app_name}.py
/tests/conftest.py
带有pytest fixture的文件。
我正在想办法
BaseClass
在某个地方
conftest.py
或者在它附近并且能够导入它。
问题:
-
测试在CI中运行,我不想安装任何模块/包(这意味着我不能
pip install
BaseClass和的模块
from thismodule import BaseClass
)
-
根据惯例,我们必须在中使用破折号
{app-name}
.这是所有相对进口的
app-name
不是python的包,即使存在
__init__.py
在场。
有没有合理的方法从特定文件加载类,或者从pytest免费获得它(在收集时很神奇)?