【发布时间】:2021-03-25 12:27:11
【问题描述】:
有没有办法进行动态覆盖?例如假设这个 pytest 代码:
src = '''
def virtual_func(a):
if a < 5 :
return 'LESS THAN FIVE'
else :
return 'MORE THAN FIVE'
'''
obj = compile(src, 'my_file_name.py', 'exec')
def test_dyncov():
g = dict()
exec(obj, g, g)
assert 'LESS THAN FIVE' == g['virtual_func'](3)
我怎样才能获得 my_file_name.py 的覆盖率报告?
注意:这是一个最小的测试用例示例。在现实生活中,它将用于覆盖模板引擎生成的 python 模板。顺便说一句,在现实生活中的代码中,模板几乎像一个模块一样被加载,它得到一个虚拟模块名和一个虚拟文件名(但所有内容都保留在内存中)。如果可能的话,我想知道如何使用虚拟文件名(例如'my_file_name.py')获取报告
【问题讨论】:
标签: python pytest code-coverage