シェルコマンドを使用して、他のプログラムへの引数として使用するファイルパスを操作します。

シェルコマンドを使用して、他のプログラムへの引数として使用するファイルパスを操作します。

find以下を使用してファイルのリストを見つけることができます。

find -type f -path "./src*" -name "*.php"`  

たとえば、

./src/Superuseradmin/Model/Mapper/UUID.php
./src/Superuseradmin/Model/Mapper/Mapper.php

私がしなければならないのは、ファイル名を読むことです。

./src/Superuseradmin/Model/Mapper/Mapper/UUID.php  

これを使用して、パスに含まれる情報に基づいてPHPUnitテストフレームワークを作成します。

Superuseradmin\Model\Mapper\UUID  
./test/Superuseradmin/Model/Mapper/UUIDTest.php

これにより、それぞれに対して次のコマンドを実行できます。

phpunit-skelgen.phar --test -- Superuseradmin\Model\Mapper\MyMapper \
./src/Superuseradmin/Model/Mapper/MyMapper.php \
./test/Superuseradmin/Model/Mapper/MyMapperTest.php

ベストアンサー1

以下は簡単な試みです。

for i in `find -type f -path "./src*" -name "*.php"`; do echo phpunit-skelgen.phar --test -- `echo $i | sed -e 's!./src/!!' | sed -e 's/.php//' | sed -e 's/\\//\\\/g'` $i `echo $i | sed -e 's!./src/!./test/!' | sed -e 's/.php/Test.php/'`;done

次のディレクトリ構造を考えると:

./src/Superuseradmin/Model/Mapper/MyMapper.php
./src/Superuseradmin/Model/UUID.php

次のように出力する必要があります。

phpunit-skelgen.phar --test -- Superuseradmin\Model\Mapper\MyMapper ./src/Superuseradmin/Model/Mapper/MyMapper.php ./test/Superuseradmin/Model/Mapper/MyMapperTest.php
phpunit-skelgen.phar --test -- Superuseradmin\Model\UUID ./src/Superuseradmin/Model/UUID.php ./test/Superuseradmin/Model/UUIDTest.php

その後、スクリプトに保存、確認、実行できます。ファイル名にスペースが含まれていることを確認してください。問題が発生する可能性があります。

おすすめ記事