Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP7.2和7.1运行的phpunit测试比使用PHP7.0运行时慢3倍_Phpunit_Php 7_Laravel 5.5_Php 7.1_Php 7.2 - Fatal编程技术网

使用PHP7.2和7.1运行的phpunit测试比使用PHP7.0运行时慢3倍

使用PHP7.2和7.1运行的phpunit测试比使用PHP7.0运行时慢3倍,phpunit,php-7,laravel-5.5,php-7.1,php-7.2,Phpunit,Php 7,Laravel 5.5,Php 7.1,Php 7.2,如果我使用PHP7.2或PHP7.1运行测试,它们的速度大约是使用PHP7.0运行测试的3倍。究竟有没有办法弄清为什么会发生这种情况 即使我单独运行测试套件(功能部件和单元),我仍然会看到速度变慢。只有当我单独运行测试时,速度差才会变得微不足道 我使用的是Laravel 5.5.20和Laravel Homestead 7.0.1。我有47个相当简单的测试,一些命中数据库,另一些只是简单的断言;因此,没有任何东西需要花费时间 我安装的目的是查看哪些测试花费的时间最长,以便删除这些测试,但没有一个

如果我使用PHP7.2或PHP7.1运行测试,它们的速度大约是使用PHP7.0运行测试的3倍。究竟有没有办法弄清为什么会发生这种情况

即使我单独运行测试套件(功能部件和单元),我仍然会看到速度变慢。只有当我单独运行测试时,速度差才会变得微不足道

我使用的是Laravel 5.5.20和Laravel Homestead 7.0.1。我有47个相当简单的测试,一些命中数据库,另一些只是简单的断言;因此,没有任何东西需要花费时间

我安装的目的是查看哪些测试花费的时间最长,以便删除这些测试,但没有一个特定的测试需要很长时间,因为如果我删除有问题的测试,下一个测试将需要很长时间(见下文)

结果

PHP 7.2 PHPUnit 6.4.4
Time: 12.4 seconds, Memory: 162.00MB

PHP 7.1 PHPUnit 6.4.4
Time: 12.19 seconds, Memory: 162.00MB

PHP 7.0 PHPUnit 6.4.4
Time: 4.88 seconds, Memory: 162.00MB

我与您有相同的问题,但安装了XDebug。我在Laracasts上发现了一个名为Roni的用户提供的非常好的提示(很抱歉,我再也找不到链接了),提示使用
php
命令的
-n
标志运行测试,如下所示:
php-n vendor/bin/phpunit

根据当时的文档,这是为了在没有php.ini定义的情况下运行命令。这意味着不包括任何扩展

-n不使用php.ini文件


所以,对我来说,它现在在一分钟内运行测试,而不是在15分钟内。这个问题有点奇怪,因为它是从我的机器上的PHP7.2开始的,但是我团队中的其他人没有这个问题,尽管安装了xdebug。我想知道这个问题背后的真正原因。

请在
perf record
下运行phpunit,然后检查
perf report
的输出,这两种情况都是如此。我遇到了同样的问题。我找到了克里斯·沃史密斯。测试运行速度提高了44%,但内存增加了5倍。我希望这些信息是有用的。谢谢,我会看看这是否有帮助。谢谢你的提示,当不需要覆盖率/xdebug时,这会大大加快测试速度。你也可以做
php-d xdebug.mode=off./vendor/bin/phpunit
,这让我感觉更干净
Laravel 5.5.20
Laravel Homestead 7.0.1 (Per-project installation)
PHPUnit 6.4.4
Vagrant 2.0.1
Virtualbox 5.2.4
PHP 7.2 PHPUnit 6.4.4
Time: 12.4 seconds, Memory: 162.00MB

PHP 7.1 PHPUnit 6.4.4
Time: 12.19 seconds, Memory: 162.00MB

PHP 7.0 PHPUnit 6.4.4
Time: 4.88 seconds, Memory: 162.00MB