所以我有一套单元/集成测试和一组selenium rc测试作为我的套件的一部分。当我使用PHPUnit一起运行它时,我在运行结束时收到Segmentation fault错误消息,在正常操作期间,它开始生成日志文件。有趣的是,如果我只运行单元测试,或只是selenium rc测试一切正常。我有理由相信我的代码库不是问题,因为我可以直观地看到我的所有测试都通过了。正如我所说,错误发生在结果生成阶段。
我正在使用代码覆盖进行单元测试,但不使用selenium测试(通过在我的selenium对象中保留$ coverageScriptUrl属性为空)。
我真的很喜欢这里的稻草,因为我从来没有必要诊断没有文件或行号的错误。我有什么地方可以查看更多信息吗?有人能指出我正确的方向吗? php错误日志为空。
有什么想法吗?
答案 0 :(得分:3)
我和同事在工作中遇到了同样的麻烦:有一天,我们开始有一个段错误,显然没有理由,因为相同的代码在另一台机器上正常运行: - (
我们最终删除了代码覆盖(因为它对我们没有用;反正太低了)
你可以尝试一些事情:
另一个可能是尝试使用CVS版本的Xdebug 2.1,而不是稳定的2.0.x;但不确定这会有所帮助(例如见http://www.phpunit.de/ticket/513)
在Xdebug的Mantis BT上有一些与segfaults有关的错误报告;其中一些没有解决。
例如:
无论如何,祝你好运......
<(如果你发现造成问题的原因,我很感兴趣;-))
答案 1 :(得分:0)
PHP中的Segfaults肯定会很棘手。
作为一个疯狂的猜测,你在运行PHPUnit 3.4吗?几周前,当使用$this->selectWindow()
调用和null
参数时,看起来there's a bug报告了Selenium集成。
答案 2 :(得分:0)
如果xdebug导致段错误,您可以切换到使用完全不使用xdebug的测试覆盖率工具,只需使用标准的PHP服务器: