python pytest-coverage:测试在测试中是否实际调用了模块定义

时间:2019-05-13 15:44:35

标签: python pytest pytest-cov

我在使用某些ctypes代码时遇到问题,其中pytest-coverage夸大了我的“真实”测试范围。

这是该模块的外观(使用一个虚拟示例):

TaskSetManager.TASK_SIZE_TO_WARN_KIB

问题是,当我运行# mymod.py add = clib.add add.arg_types = [c_int, c_int] add.res_type = c_int 时,即使从未在单元测试中调用 python pyest_coverage,我的代码覆盖率也显示为100%。换句话说,如果我不这样做

add

我希望我的报道能反映出来,这意味着我想反映#tests/test_mymod.py assert mymod.add(1,2) == 3 “没有经过实际测试”。

选项

我的模块承受不起任何性能冲击。我想到的一件事就是这样做:

add

def add(a, b):
    # probably really bad performance wise if called many times!!!
    _add = clib.add
    _add.arg_types = [c_int, c_int]
    _add.res_type = c_int
    return _add(a,b)

但是我担心,出于测试目的,这两种重组都会影响代码的性能

任何想法,除非某些测试函数实际调用_add = clib.add _add.arg_types = [c_int, c_int] _add.res_type = c_int def add(a, b): # questionable performance!! return _add(a,b) ,否则我如何欺骗pytest或pytest-coverage不将add算作覆盖?

0 个答案:

没有答案