2

そのため、スイートの一部として、ユニット/統合テストのセットとセレン rc テストのセットがあります。PHPUnit を使用してそれらを一緒に実行すると、通常の操作中にログ ファイルの生成が開始されたときに、実行の最後にセグメンテーション違反エラー メッセージが表示されます。興味深いのは、単体テストのみ、またはセレン rc テストのみを実行すると、すべて正常に動作することです。すべてのテストが合格したことを視覚的に確認できるため、コードベースの問題ではないと確信しています。私が言ったように、エラーは結果生成フェーズで発生します。

単体テストにはコードカバレッジを使用していますが、セレンテストには使用していません (セレンオブジェクトで $coverageScriptUrl プロパティを空のままにしておくことにより)。

ファイル番号や行番号がないエラーを診断する必要がなかったので、ここでストローを本当に把握しています。詳細を確認する場所はありますか?誰かが私を正しい方向に向けることができますか? PHP エラー ログが空です。

何か案は?

4

3 に答える 3

3

職場で同僚と同じ種類の問題が発生しました。ある日、同じコードが別のマシンで正常に実行されていたため、理由もなくセグメンテーション違反が発生し始めました:-(

私たちはコードカバレッジを削除することになりました(それは私たちにとってそれほど有用ではなかったので;とにかく低すぎました)

あなたが試すことができるいくつかのこと:

  • 最新バージョンのXdebugを試してみてください(場合によっては、そのようなものを修正することになっています)
  • 古いバージョンのXdebugを試してみてください(なぜですか?)
  • PHPUnitでテストスイートを2つの実行に分割することを検討してください。
    • 単体テスト用のコードカバレッジを伴う1回の実行
    • 機能テストのための、コードカバレッジなしの1回の実行(とにかくそれを使用しないため)

もう1つの方法は、安定した2.0.xではなく、CVSバージョンのXdebug2.1を試してみることです。しかし、それが役立つかどうかはわかりません(たとえば、http://www.phpunit.de/ticket/513を参照してください)

XdebugのMantisBTのsegfaultsに関連するバグレポートがいくつかあります。それらのいくつかは解決されていません。
例えば ​​:

とにかく、頑張って...

<(そして、問題の原因を見つけた場合は、興味があります;-))

于 2009-07-29T04:23:10.417 に答える
0

PHPのSegfaultsは間違いなく注意が必要です。

大げさな推測として、PHPUnit 3.4を実行していますか?呼び出しとパラメーターを使用すると、ほんの数週間前にSelenium統合でバグが報告されたようです。$this->selectWindow()null

于 2009-07-28T22:48:40.803 に答える
0

xdebug がセグメンテーション違反を引き起こしている場合は、xdebug をまったく使用しない、標準の PHP サーバーのみのテスト カバレッジ ツールの使用に切り替えることができます。

セマンティック デザイン PHP テスト カバレッジ

于 2010-03-24T09:57:48.367 に答える