问题
I am attempting to run Codeception functional tests within PhpStorm and keep receiving an error that says a class is missing. I've scoured the internet and found nothing available for this problem except for one post https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000646104-Running-codeCeption-test-runner-causes-excpetion?sort_by=created_at . Other posts talk about how to set the argument.
I have both a phar of Codeception 2.4.1 and a composer install of it. It is using PHP version 7.1 to execute.
Searching the vendor
folder returns no such class which makes me think it is supposed to be delivered or included from within PhpStorm. Not really sure, grabbing at straws.
If anyone has any exposure to this and can help with some guidance it would be much appreciated. I can run them a docker/vagrant config or from the CLI, it just cannot integrate with PhpStorm.
C:\php\php-7.1.4-Win32-VC14-x64\php.exe -d-dxdebug.remote_mode=jit C:/Users/Curtis/AppData/Local/Temp/ide-codeception.php run --report -o "reporters: report: PhpStorm_Codeception_ReportPrinter" --no-ansi --no-interaction functional
==== Redirecting to Composer-installed version in vendor/codeception ====
Codeception PHP Testing Framework v2.4.1
Powered by PHPUnit 5.7.27 by Sebastian Bergmann and contributors.
In Runner.php line 174:
Class PhpStorm_Codeception_ReportPrinter does not exist
run [-o|--override OVERRIDE] [-e|--ext EXT] [--report] [--html [HTML]] [--xml [XML]] [--tap [TAP]] [--json [JSON]] [--colors] [--no-colors] [--silent] [--steps] [-d|--debug] [--coverage [COVERAGE]] [--coverage-html [COVERAGE-HTML]] [--coverage-xml [COVERAGE-XML]] [--coverage-text [COVERAGE-TEXT]] [--coverage-crap4j [COVERAGE-CRAP4J]] [--coverage-phpunit [COVERAGE-PHPUNIT]] [--no-exit] [-g|--group GROUP] [-s|--skip SKIP] [-x|--skip-group SKIP-GROUP] [--env ENV] [-f|--fail-fast] [--no-rebuild] [--] [<suite>] [<test>]
PHP Fatal error: Uncaught RuntimeException: Command Did Not Finish Properly in C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Subscriber\ErrorHandler.php:101
Stack trace:
#0 [internal function]: Codeception\Subscriber\ErrorHandler->shutdownHandler()
#1 {main}
thrown in C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Subscriber\ErrorHandler.php on line 101
PHP Stack trace:
PHP 1. {main}() C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:0
PHP 2. require_once() C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:21
PHP 3. require() phar://C:/Users/Curtis/Projects/tripadvisor-integration/codecept.phar/autoload.php:12
PHP 4. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\package\bin:37
PHP 5. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Application.php:108
Fatal error: Uncaught RuntimeException: Command Did Not Finish Properly in C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Subscriber\ErrorHandler.php on line 101
Call Stack:
0.2024 403184 1. {main}() C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:0
0.2208 1243848 2. require_once('phar://C:/Users/Curtis/Projects/tripadvisor-integration/codecept.phar/autoload.php') C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:21
0.2862 5654840 3. require('C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\package\bin') phar://C:/Users/Curtis/Projects/tripadvisor-integration/codecept.phar/autoload.php:12
0.3338 8056520 4. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\package\bin:37
0.3338 8056520 5. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Application.php:108
RuntimeException: Command Did Not Finish Properly in C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Subscriber\ErrorHandler.php on line 101
Call Stack:
0.2024 403184 1. {main}() C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:0
0.2208 1243848 2. require_once('phar://C:/Users/Curtis/Projects/tripadvisor-integration/codecept.phar/autoload.php') C:\Users\Curtis\AppData\Local\Temp\ide-codeception.php:21
0.2862 5654840 3. require('C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\package\bin') phar://C:/Users/Curtis/Projects/tripadvisor-integration/codecept.phar/autoload.php:12
0.3338 8056520 4. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\package\bin:37
0.3338 8056520 5. Codeception\Application->run() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Application.php:108
0.6265 17565136 6. Codeception\Subscriber\ErrorHandler->shutdownHandler() C:\Users\Curtis\Projects\tripadvisor-integration\vendor\codeception\codeception\src\Codeception\Subscriber\ErrorHandler.php:0
Process finished with exit code -1
回答1:
In my case, I had codeception installed both in composer global and as a project dependency.
I had to remove composer global remove codeception/codeception
and go to PHPStorm -> Settings -> Languages & Frameworks -> PHP -> Test Frameworks and change my codeception executable to ~/myprojectpath/vendor/codeception/codeception/codecept
来源:https://stackoverflow.com/questions/50044955/class-phpstorm-codeception-reportprinter-does-not-exist