gpt4 book ai didi

python - 在测试中创建和导入辅助函数,而不使用 py.test 在测试目录中创建包

转载 作者:IT老高 更新时间:2023-10-28 21:54:35 28 4
gpt4 key购买 nike

问题

如何在测试文件中导入辅助函数而不在 test 目录中创建包?


上下文

我想创建一个可以在多个测试中导入的测试辅助函数。说,像这样:

# In common_file.py

def assert_a_general_property_between(x, y):
# test a specific relationship between x and y
assert ...


# In test/my_test.py

def test_something_with(x):
some_value = some_function_of_(x)
assert_a_general_property_between(x, some_value)

使用 Python 3.5,搭配 py.test 2.8.2


当前的“解决方案”

我目前正在通过在我的项目的 test 目录(现在是一个包)中导入一个模块来执行此操作,但如果可能的话,我想使用其他一些机制来执行此操作(以便我的 test 目录没有包,只有测试,测试可以在包的已安装版本上运行,推荐 here in the py.test documentation on good practices )。

最佳答案

您可以在 conftest.py 中定义一个辅助类,然后创建一个 fixture 来返回该类(或它的一个实例,具体取决于您的需要)。

import pytest


class Helpers:
@staticmethod
def help_me():
return "no"


@pytest.fixture
def helpers():
return Helpers

然后在你的测试中,你可以使用fixture:

def test_with_help(helpers):
helpers.help_me()

关于python - 在测试中创建和导入辅助函数,而不使用 py.test 在测试目录中创建包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508060/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com