【发布时间】:2020-06-09 23:49:56
【问题描述】:
问题:
是否可以将 conftest.py 文件放入测试包旁边的另一个包中,如下结构?
说明
项目结构如下:
--------------------------------------
GUI_pytest
- C_lib
--__init__.py
-- conftest.py
- G_test<br/>
--__init__.py
-- test_2.py
Source_Root: GUI_pytest
conftest.py: GUI_pytest/C_lib(package)
test_2.py(测试文件): GUI_pytest/G_test(package)GUI_pytest/C_lib/conftest.py:
有一个fixture函数为def a()
测试用例:GUI_pytest/G_test/test_2.py 使用夹具作为 def test_2(a)
我想将 conftest.py 和 test_case().py 拆分为 C_lib package 和 G_test package
但是 pytest 似乎无法获取 conftest.py 文件
找不到 def test_2(a)
a 时出错
提前谢谢你
作为初学者,任何事情都可以帮助解决这个问题。
【问题讨论】:
-
如果内容将用于所有测试,则将其放入根路径,如果需要,将带有测试特定内容的单独
conftest.py文件放入测试路径。 -
@MrBeanBremen: 可以将
conftest.py作为test package的兄弟放入另一个包中,我不想让conftest.py在根目录下或在测试包中混合测试文件.非常感谢!这是我第一个问题的第一个答复。 -
conftest.py不是一个测试文件,它是一个配置文件 - 你可以在不同的位置拥有任意数量的文件,它们将在它们所在的目录中使用,或者任何子目录。 Here 是一些相关的解释(但不确定我是否理解正确)。 -
@MrBeanBremen,谢谢,不太准确,问题是:1)root/lib/conftest.py 2)root/test/test_case.py,test_case.py如何使用root/lib/conftest.py文件?因为pytest不会自动加载root/lib/conftest.py?感谢您的链接,这也很有用。
-
conftest.py是pytest的扩展,专门用于您的测试套件。将其与您的测试一起使用,而不是与您的生产代码一起使用。