I like it very much, well done!
Only two side notes - for the time being:
(1) I've installed version 0.2.7 from your site and I get the following behaviour:
PHP-Shell - Version 0.2.7
(c) 2006, Jan Kneschke <email@example.com>
>> use '?' to open the inline help
unknown tag: 300 (T_EXIT): exit
(2) Just out of curiosity I tried out the following:
>> require 'bin/punit.php'
PHPUnit 3.0.0alpha4 by Sebastian Bergmann.
Usage: phpunit [switches] UnitTest [UnitTest.php]
--log-graphviz <dir> Log test execution in GraphViz markup.
--log-tap <file> Log test execution in TAP format to file.
--log-xml <file> Log test execution in XML format to file.
--report <dir> Generate test report in HTML format.
--testdox-html <file> Write agile documentation in HTML format to file.
--testdox-text <file> Write agile documentation in Text format to file.
--loader <loader> TestSuiteLoader implementation to use.
--no-syntax-check Do not check for syntax errors.
--skeleton Generate skeleton UnitTest class for Unit in Unit.php.
--repeat <times> Runs the test(s) repeatedly.
--wait Waits for a keystroke after each test.
--help Prints this usage information.
--version Prints the version and exits.
Shouldn't both actions be captured by PHP_Shell regarding the "exiting". In both cases I would have expected the shell to regain control.
I'll play around it in the weeks to come.