首页 文章

儿童过程中鼻试的覆盖率报告

提问于
浏览
0

我正在使用nosetests对一些python脚本进行单元测试 . 有问题的脚本会创建一个子进程 . 我正在使用以下命令执行脚本:nosetests -s -v 'python script.py' --with-coverage

我安装了 nose-cov . 它的版本是 1.6 .

我得到的报道报告不包含孩子执行的代码的覆盖范围 .

IS THERE ANY WAY OF GETTING THE COVERAGE OF THE CHILD PROCESS??

谢谢

2 回答

  • 1

    Nose正在使用杰出的coverage封装下的工作 . 假设您使用子进程启动子进程,在您的测试中,您可以暂时将启动您的孩子作为补丁:

    subprocess.call(['coverage', 'run', 'my_child_program.py', '-p'])
    

    使用 -p 选项组合报告 . 您可能需要其他选项以确保您的nose选项指向与子进程调用相同的 .coverage 报告文件 .

  • 0

    如果您的脚本定义如下:

    def main(argv=None):
        ...
        args = parser.parse_args(argv)
    
        ...
    
    if __name__ == '__main__': # pragma: no cover
        main()
    

    您可以在测试中调用 main() 函数:

    yourmodule.main([
        '--opt1', 'val1',
        '--opt2', 'val2',
        'arg1',
        'arg2'
    ])
    

相关问题