PhpStorm のテスト環境構築メモ。
Postscripts
プロジェクト用の Composer のセットアップ。ディペンデンシィーの定義でテスト用ツールを追加していく。
Initializing Composer in an existing project – Help | PhpStorm
Run -> Debug を選択すると、
Warning: Header may not contain NUL bytes in ...
と出る。php.ini
の[XDebug]
のセクションに、
xdebug.remote_autostart = 1
を追加するとでなくなった。PhpStorm から Codeception を走らせようとするとエラーが出る。おそらく Windows 上で、
.phar
ファイルを使った場合のエラー。phar 内でのインクルードが適切に行われていない感じ。include_path
の設定をうまくやれば直りそうだけど。Run -> Edit Configurations -> Codeption を名前を付けて追加し、その名前を実行すると以下のエラー。
12345678910111213141516171819202122232425262728293031323334C:xamppphpphp.exe C:/Users/{User Name}/AppData/Local/Temp/ide-codeception.php run --report -o "reporters: report: PhpStorm_Codeception_ReportPrinter" --no-interaction -c d:htdocstest_phpTDDcodeception.ymlPHP Warning: require_once(phar://d:htdocstest_phpTDDcodecept.phar/autoload.php): failed to open stream: phar error: "autoload.php" is not a file in phar "Z:/htdocs/test_php/TDD/codecept.phar" in C:Users{User Name}AppDataLocalTempide-codeception.php on line 21Warning: require_once(phar://d:htdocstest_phpTDDcodecept.phar/autoload.php): failed to open stream: phar error: "autoload.php" is not a file in phar "Z:/htdocs/test_php/TDD/codecept.phar" in C:Users{User Name}AppDataLocalTempide-codeception.php on line 21Call Stack:0.0033 442840 1. {main}() C:Users{User Name}AppDataLocalTempide-codeception.php:0Variables in local scope (#1):$app = *uninitialized*$exe = 'd:\htdocs\test_php\TDD\codecept.phar'$originalPath = *uninitialized*PHP Stack trace:PHP 1. {main}() C:Users{User Name}AppDataLocalTempide-codeception.php:0PHP Fatal error: require_once(): Failed opening required 'phar://d:htdocstest_phpTDDcodecept.phar/autoload.php' (include_path='.;C:xamppphppear') in C:Users{User Name}AppDataLocalTempide-codeception.php on line 21PHP Stack trace:PHP 1. {main}() C:Users{User Name}AppDataLocalTempide-codeception.php:0Fatal error: require_once(): Failed opening required 'phar://d:htdocstest_phpTDDcodecept.phar/autoload.php' (include_path='.;C:xamppphppear') in C:Users{User Name}AppDataLocalTempide-codeception.php on line 21Call Stack:0.0033 442840 1. {main}() C:Users{User Name}AppDataLocalTempide-codeception.php:0Variables in local scope (#1):$app = *uninitialized*$exe = 'd:\htdocs\test_php\TDD\codecept.phar'$originalPath = *uninitialized*Process finished with exit code 255Codeception を phar ではなく Composer で配置した場合、Windows では、
1php vendor/bin/codecept -Vとしても以下のコードが表示されるだけ。
123456789101112131415$ php vendor/bin/codecept -Vdir=$(cd "${0%[/\]*}" > /dev/null; cd "../codeception/codeception" && pwd)if [ -d /proc/cygdrive ]; thencase $(which php) in$(readlink -n /proc/cygdrive)/*)# We are in Cygwin using Windows php, so the path must be translateddir=$(cygpath -m "$dir");;;esacfi"${dir}/codecept" "$@"これは、コマンドの
php
を抜いて、codecept.bat
を直接呼びだす。12$ vendor/bin/codecept.bat -V参考:Bootstrap doesn’t seem to work (Win7, PHP 7 x64) · Issue #3281 · Codeception/Codeception · GitHub