标头已经在PHPStorm中发送了运行单元测试

Der*_*ian 1 php phpunit phpstorm

我正在尝试使用在PHPStorm中运行phpunit测试的集成方法,并使它无法正常工作。

PHP: 5.6.10 PHP单位:
4.5.1
PHPStorm:8.0.3

多亏了/sf/answers/2124185101/,我才知道必须将phpunit版本降级到<4.6。

查找/sf/answers/1813233271/我在配置中尝试了@runInSeparateProcess表示法和strerr =“ false | true”。通过进程隔离,我看到了与此用户相同的问题(基本上是phpunit --help,而不是每个测试都隔离)。使用stderr =“ false | true”可以得到相同的结果(无法修改标头信息……等等)。

在没有进程隔离或将stderr设置为true或false的情况下,测试运行良好,都可以通过测试。 终端中通过测试的屏幕截图,集成运行器失败

目前,我显然只是在终端中运行测试,但是我真的很希望能够使用coverage功能,但是对于标头调用之后的任何代码行,它基本上都没有用。

小智 5

我有同样的问题。当我尝试使用内置的PHPStorm工具运行任何代码接收测试(专门针对Yii2)时,我得到以下消息:

session_set_cookie_params():标头已发送时,无法更改会话cookie参数

我没来很久,但是昨天在与通用铃鼓共舞午夜之后,我发现了以下内容:

PHPStorm(用于Google的jetBrains)使用Codeception Framework插件来放置文件:

C:/Users/dev/AppData/Local/Temp/ide-codeception_before_24.php:405

使用printEvent方法从中通过Printer :: write()登录到控制台:

供应商/ phpunit / phpunit / src / Util / Printer.php:99

如何很好地解决它,我没有找到,因此“这是我们给张伯伦的答案!”:我们在测试/ _bootstrap.php中编写ob_start()


    <? php
    require_once __DIR__. '/../vendor/yiisoft/yii2/Yii.php';
    require_once __DIR__. '/ .. / vendor / autoload.php';

    ob_start ();
Run Code Online (Sandbox Code Playgroud)

测试结束时,缓冲区将自动刷新到控制台。我们得到以下内容:

运行代码接收运行测试功能的示例

  • 它可以工作,但是当然,在打开输出缓冲的情况下,我们在测试运行时不会得到任何反馈。 (3认同)