2009-07-28 92 views
2

所以我有一组单元/集成测试和一组Selenium RC的测试,我的套件的一部分。当我使用PHPUnit将它们一起运行时,在正常运行期间,它会在运行的最后阶段收到Segmentation fault错误消息,并开始生成日志文件。有趣的部分是,如果我只运行单元测试,或只是硒rc测试一切正常。我相当确定这对我的代码库不是问题,因为我可以直观地看到所有的测试都通过了。正如我所说的,错误发生在结果生成阶段。硒RC测试+单元测试抛出一个赛格故障

我使用的代码覆盖率的单元测试,但不是为Selenium测试(由离开$ coverageScriptUrl财产空在我的硒对象)。

我真的在抓救命稻草这里,因为我从来没有来诊断错误,没有文件或行号。有没有我查看更多信息的地方?有人能指引我朝着正确的方向吗? php错误日志是空的。

任何想法?

回答

3

我在同事面前遇到了同样的问题:有一天,我们开始出现段错误,显然没有理由,因为相同的代码在另一台机器上运行正常:-(

我们最终移除代码覆盖率(因为它不是对我们来说非常有用;太低反正)

夫妇的事情,你可以尝试:

  • 尝试用Xdebug的最新版本(有时,这些应该纠正吨的东西那样)
  • 尝试使用旧版本的Xdebug(为什么不? )
  • 想想上的PHPUnit在两次执行分裂测试套件:无代码覆盖
    • 执行一个代码覆盖率,为单元测试
    • 一个执行(只要你不无论如何使用它)对于功能性的测试

另一个THNG可能会去尝试,而不是稳定的2.0.x版本与Xdebug的2.1的CVS版本;但不知道会有帮助(例如http://www.phpunit.de/ticket/513

在Xdebug的Mantis BT上有几个与segfault相关的bug报告;其中一些没有解决。
例如:

无论如何,祝你好运......

<(如果你发现什么导致问题,我很感兴趣;-))

+0

我将xdebug的版本从2.0.5升级到2.1,并且segfault消失了。感谢指针! – 2009-07-29 12:30:47

0

PHP中的Segfaults肯定会很棘手。

由于胡乱猜测,你运行PHPUnit的3.4?看起来像there's a bug在几周前使用$this->selectWindow()调用和null参数与Selenium集成报告。

+0

感谢您的答复。我实际上使用3.3的PHPUnit,并没有在任何地方使用selectWindow()。 – 2009-07-28 23:03:29

0

如果Xdebug的是造成段错误,你可以切换到使用测试覆盖工具不使用Xdebug的所有,只是一个标准的PHP服务器:

Semantic Designs PHP Test Coverage