PhpUnit invoker.php问题

时间:2016-05-21 18:32:59

标签: php phpunit

我试图运行一些PhpUnit测试并且它运行良好,但我一直遇到以下问题。 当我编写Unittest并且由于某种原因它失败时,我收到以下错误消息(我还得到一条不清楚的消息,为什么测试失败):

1) testUser_ReadOnly::testLoginFunction PHP Warning: require_once(../classes/PHP_Invoker.php): failed to open stream: No such file or directory in C:\xampp\htdocs\map\src\tests\autoload.php on line 6

现在我在互联网上找到了一个解决方案,只是说我必须将以下行添加到我的composer.json中: "phpunit/php-invoker": "1.1.*"

当我尝试运行编辑器更新功能时,我收到以下错误消息:

  Problem 1
    - phpunit/php-invoker 1.1.4 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
    - phpunit/php-invoker 1.1.3 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
    - phpunit/php-invoker 1.1.2 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
    - phpunit/php-invoker 1.1.1 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
    - Installation request for phpunit/php-invoker 1.1.* -> satisfiable by phpunit/php-invoker[1.1.1, 1.1.2, 1.1.3, 1.1.4].

有没有人解决这个问题?任何帮助表示赞赏! 提前谢谢!

3 个答案:

答案 0 :(得分:2)

好吧,我找到了解决这个问题的方法。当我开始使用phpUnit时,我不清楚我必须从Xampp shell而不是windows命令行运行命令。您可以通过打开Xampp控制面板并单击“shell按钮”找到它。由于我在这里执行phpUnit命令,我再也没遇到过这些问题。因此,当您遇到与我在问题中发布的错误相同的错误时,请尝试在Xampp shell中执行PHPUnit命令。

答案 1 :(得分:0)

错误信息确实不是很清楚,但这已经解决了问题:您的设置与PHPUnit不兼容,您在文件C:\xampp\htdocs\map\src\tests\autoload.php中配置的自动加载器会使测试套件停止运行。

与配置问题一样,在最终解决之前很难掌握。然后他们看起来很容易。只需检查有问题的文件,然后使用步进调试器(例如xdebug)在相关行上放置一个断点来启动测试套件。您应该能够快速找到罪魁祸首,并且很可能立即发现导致问题的原因。

答案 2 :(得分:0)

php-invoker需要php pcntl扩展名。看来你的php没有启用pcntl扩展编译。您可以通过运行php -m|grep pcntl来检查。如果你得到pcntl,那么它就被启用了,但如果你没有得到任何东西,那就不是。在任何情况下,pcntl都不能用于标记为here的Windows,并且从您的路径看起来就像是在Windows上。