我有一个奇怪的问题, 我跑的时候
$ phpunit
我得到了
Fatal error: Call to undefined method PHPUnit_Framework_TestResult::warningCount() in /home/vagrant/.composer/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php on line 185
Call Stack:
0.0009 231392 1. {main}() /home/vagrant/.composer/vendor/phpunit/phpunit/phpunit:0
0.0065 743872 2. PHPUnit_TextUI_Command::main() /home/vagrant/.composer/vendor/phpunit/phpunit/phpunit:47
0.0066 744512 3. PHPUnit_TextUI_Command->run() /home/vagrant/.composer/vendor/phpunit/phpunit/src/TextUI/Command.php:106
1.1720 6818904 4. PHPUnit_TextUI_TestRunner->doRun() /home/vagrant/.composer/vendor/phpunit/phpunit/src/TextUI/Command.php:155
1.4597 16188088 5. PHPUnit_TextUI_ResultPrinter->printResult() /vagrant/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:446
然而,当我跑
时$ ./vendor/bin/phpunit
它按预期工作并运行我的测试。
也许我有其他程序或使用phpunit别名的东西?
我如何调试才能找到它? 有什么想法吗?
答案 0 :(得分:3)
假设您已从当前Laravel App的phpunit
安装了composer.json
。
运行:
vendor/phpunit/phpunit/phpunit
因为全局的phpunit可能是不兼容的版本。在当前包中调用并执行。
答案 1 :(得分:1)
在Windows上我全局安装了不兼容的版本。
要解决此问题,请创建" phpunit.bat"在项目的根目录中:
"vendor/bin/phpunit"
这会优先于系统路径中的phpunit。
答案 2 :(得分:0)
在Windows上,您可以在项目的根目录中设置环境变量。
在控制台/终端中键入:
set phpunit=vendor/bin/phpunit
我和Laravel和PhpStorm有同样的问题,在我的 PhpStorm终端中输入后,问题解决了。
答案 3 :(得分:0)
您是如何配置添加/ vendor / bin到路径的?
我在~/.bashrc
文件中有这个:
PATH="$PATH:/path/to/vendor/bin"
这会将/ vendor / bin /添加到路径的端,所以如果您的路径中有更早的名为phpunit的其他可执行文件 - 在您的情况下,全局安装的 - 它将是而是打来电话。
要解决此问题,请将vendor/bin
添加到~/.bashrc
中路径的开头:
PATH="/path/to/vendor/bin:$PATH"
然后注销并登录或运行source ~/.bashrc
,系统应在您运行/vendor/bin/phpunit
时首先找到phpunit
。
答案 4 :(得分:0)
我刚发现Windows大约有doskeys
。我认为它们在Mac上称为别名,但是它们允许您创建一个命令作为另一个命令的别名。
这样,我可以使用:
doskey macroName=macroDefinition
在我的情况下是:
doskey p=.\vendor\bin\phpunit
这意味着我可以在项目文件夹中为phpunit使用命令p
-更快!
例如,我现在可以使用以下命令:
p --filter my_single_test tests/MyExampleTest.php