Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pytest使用构造函数在类内运行测试_Python_Python 3.x_Automation_Pytest_Qa - Fatal编程技术网

Python pytest使用构造函数在类内运行测试

Python pytest使用构造函数在类内运行测试,python,python-3.x,automation,pytest,qa,Python,Python 3.x,Automation,Pytest,Qa,我想为API编写一个测试套件。我的项目树如下所示: 我需要有一个“客户端”文件,其中包含初始化所有助手函数的类(例如,随参数、断言、配置等发送的实际请求)。和实际的测试类。所以我有 class Client() __init__() def helper_function() class TestBackend(Client) __init__() def test_something() 然后我尝试用pytest运行我的测试。我一直在 PytestWarning:无法收集测

我想为API编写一个测试套件。我的项目树如下所示:

我需要有一个“客户端”文件,其中包含初始化所有助手函数的类(例如,随参数、断言、配置等发送的实际请求)。和实际的测试类。所以我有

class Client()
  __init__()
  def helper_function()
class TestBackend(Client)
  __init__()
  def test_something()
然后我尝试用pytest运行我的测试。我一直在

PytestWarning:无法收集测试类“TestBackend”,因为它具有 一个init构造函数

如所述,这是预期的行为。SO与此相关
但是出于对所有神圣事物的热爱,我无法找到解决我所面临问题的方法,我不相信这不是一个经常需要的案例。

是的,你是对的,如果类中定义了“\uuu init\uuu()”,那么py测试将不会收集用于测试目的的类。但是,如果您想初始化所有帮助器方法和文件,则可以将该文件添加到pytest.ini配置文件中的pythonpath中,如下所示:-

[pytest]
python_paths = . <path to helper file>
[pytest]
python_路径=。
从那时起,您可以直接在测试脚本中导入该特定文件


我希望您能找到答案。

这肯定是解决这个问题的方法,但我不相信这被认为是一种好的编码实践。这将是一场维护和调试的噩梦!另外,我应该在哪里实例化我的助手类?实际上,ini文件用于更改pytest模块的默认配置。您可以在fixture本身的测试脚本中创建类的对象。实际上,我错过的是套件应该继承自unittest.TestCase,以便所有这些都能正常工作。谢谢你抽出时间:)