我刚刚开始使用PHPUnit和Selenium,但是一个问题一直困扰着我:我似乎无法获得正确的覆盖数据 .

我的应用程序需要用户完成涉及多个页面的多步骤过程,每个页面都由PHP通过显示功能(输出HTML)和处理功能(处理POST操作的结果)进行处理 . 我的基线测试贯穿整个过程,并且在访问了大约七页的每一页后正确完成 . 我已经通过视觉和测试案例中的断言验证了这一点 .

这个问题是覆盖率报告表明只执行了前几个函数,而其他函数从未被访问过(尽管我的视觉和测试用例检查) . 我认为问题是在第一个函数期间发生的PHP通知,这可能会阻止XDebug / PHPUnit收集统计信息,但我修复了这个问题并且问题仍然存在 .

有没有什么可以阻止通过测试中途收集覆盖率统计数据?所讨论的所有函数都在同一个文件中,并从(不同的)中央PHP脚本调用,该脚本根据递增的会话变量选择调用哪个函数 .