maroonbytesが提供するコードを使用して、 CodeIgniter で SimpleTest を使用しようとしています。LAMP と NetBeans 6.9 を使用しています。
test.php ページがブラウザに読み込まれます。スタブ テストが配置されており、ドロップダウンの選択肢に表示されます。実行しようとすると、2 つの PHP エラーが発生します。
メッセージ: include_once(/var/www/sparts3/main/tests/basic_test_v.php): ストリームを開くことができませんでした: そのようなファイルまたはディレクトリはありません
メッセージ: include_once(): 含めるために '/var/www/sparts3/main/tests/basic_test_v.php' を開けませんでした (include_path='.:/usr/share/php:/usr/share/pear')
パスが間違っています - basic_test_v.phpはサブフォルダー/tests/viewsにあります。
デバッガーはtest.phpでこれを指します:
function add_test($file, &$test)
何らかの理由で、NetBeans はこの時点で $file の値を公開しません。これは空っぽということですか?
Code 404 Page Not Found を通過したため、既にコード行をジミーしました。デバッガーの GET が原因でバリデーターが失敗したようです。だから私は無知な方法で基準を追加しました(私はそれが処理された例外か何かであるべきだと確信しています):
if ($this->uri->uri_string == '' || $this->uri->uri_string == 'XDEBUG_SESSION_START')
{ ... }
どうすればこれを解決できますか? ところで、これは私の他の投稿を解決しようとしています。これを更新します。これを個別の質問にするのが最善のようです。
更新 1: Web 開発者アドイン (Firefox) を使用して、POST エントリを試しています。これらはコードで誤って処理されていると思います。デバッグ中に NetBeans がいくつかの文字列変数を表示することをためらっているように見えます。これはイライラします。
更新 2: NetBeans が変数の表示を停止するのと同じ時点で、有効なコード処理が停止するように思えます。私はtest.phpをステップ実行しています。関数add_test($file, &$test)の途中です。この関数は if ステートメントで始まります。それはうまく終わり、変数を見ることができます。次に、新しい if ステートメント:
if (file_exists($implementation))
{
require_once ($implementation); ...
その行にいるとすぐに、2 つのことが起こります。
- SuperGlobals を除いて、NetBeans の変数表示が空白になる
- コードは $implementationが空の変数であるかのように動作します
これらの行のすぐ上にステートメントを追加しました。
$implementation = 'http://var/www/sparts3/main/tests/views/basic_test_view.php';
これは何も変わりません。NetBeans/Xdebug を使用しているかどうかに関係なく、ブラウザーの出力は同じです。
そのため、PHP 処理の不具合のように見え始めています。それらは存在しますか?デバッグ機能のない CI には興味がないので、アップロードしてホスト サービスから試してみるかもしれません。
更新 3: WAMP PC ですべてを試しました。同じブラウザーの結果 (さらに、PHP 4 と 5 に関係する「非推奨」エラーがいくつかあります)。その PC でデバッグできると思いますが (Xdebug が機能している場合)、ほとんど意味がないようです。