gpt4 book ai didi

python - 使用 pytest 从单个函数报告多个测试

转载 作者:行者123 更新时间:2023-12-04 16:45:39 25 4
gpt4 key购买 nike

我目前有一个简单的测试,它实例化一堆类似的对象并执行一个方法以确保该方法不会抛出任何异常:

class TestTemplates(object):

def test_generate_all(self):
'''Generate all the templates and ensure none of them throw validation errors'''
for entry_point in pkg_resources.iter_entry_points('cloudformation.template'):
object = entry_point.load()
object().build().to_json()

这在 pytest 的文本输出中报告作为单个测试:
test/test_templates.py::TestTemplates::test_generate_all PASSED

也在 junit XML:
<testcase classname="test.test_templates.TestTemplates" file="test/test_templates.py" line="31" name="test_generate_all" time="0.0983951091766"></testcase>

是否可以将每个测试的对象报告为单独的测试,而无需为每个对象手动定义测试功能?

最佳答案

我将您的对象列表定义为 fixture ,然后将该列表传递给参数化测试:

@pytest.fixture
def entry_point_objects()
eps = pkg_resources.iter_entry_points('cloudformation.template')
return [ep.load() for ep in eps]

@pytest.mark.parametrize('obj', entry_point_objects())
def test_generate_all(obj):
obj().build().to_json()

关于python - 使用 pytest 从单个函数报告多个测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771587/

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