我试着用pytest运行碎片测试用例。我有一个应用程序和一个框架,它们都定义了测试用例。当我开始运行测试时,我的应用程序还使用" main“函数(来自_pytest.config导入主main([<framework_dir>, args, ...]))运行框架的测试用例。
问题是我想使用应用程序conftest.py,而不是框架的conftest.py。我试图通过使用--confcutdir= main([<framework_dir>, '--confcutdir={}'.format(os.path.dirname(__file__)), ...])来实现这一点,但是它不起作用。当我列出这些固定设备(有-固定选项)时,它们没有被列出(那些在应用程序的conftest.py中定义的)。
那么,有没有人有过如何在应用程序和框架/库之间共享固定装置的经验呢?
我已经创建了一个GitHub回购,它模拟我的项目并复制错误:https://github.com/karantan/global-fixtures
发布于 2017-06-16 11:55:50
我得到了很多帮助在网上桑拿IRC聊天的用户“恩基杜兰”。他指出,我不应该通过main函数调用框架测试。
问题的根源在于夹具函数的pytests发现策略似乎是最接近于测试文件的conftest.py总是在覆盖竞争中获胜,即使-p指定了一些要加载的补丁(不确定它在pytest中是否是一个bug )。
因此,他建议我将conftest.py重命名为不同的名称,比如fixtures.py (我确实这么做了)。然后,除了发现应用程序测试(pytest src/app/tests/)之外,我还会发现框架测试+添加要使用的补丁:pytest -p app.tests.fixtures src/app/tests/
注意:如果有人想要检查代码的外观,回购将使用上一个工作版本进行更新。
https://stackoverflow.com/questions/44498371
复制相似问题