【问题标题】:Zend Framework 2 project relative paths in PHPUnit + PHPStormPHPUnit + PHPStorm 中的 Zend Framework 2 项目相对路径
【发布时间】:2014-06-04 06:58:03
【问题描述】:

我正在尝试在 PHPStorm 中执行我的 PHPUnit 测试用例。

我已经在项目的根目录中添加了 composer.phar,并将其绑定到我的 PHPStorm 配置中。

现在我右键单击phpunit.xml.dist 并选择运行..

该模块利用了我使用以下行编写的 Logger 模块

// Error occurred, begin a logfile $logger = new Logger(); $writer = new Stream('data/logs/services-api.log'); $logger->addWriter($writer);s 这在 Apache、NGinx 等上运行时效果很好......

但在 PHPunit 中,它似乎没有达到我的预期。

```

Zend\Log\Exception\RuntimeException : "data/logs/services-api.log" cannot be opened with mode "a"
#0 ~ZendProject/module/Common/src/Common/Listeners/ApiErrorListener.php(31): Zend\Log\Writer\Stream->__construct('data/logs/servi...')
#1 [internal function]: Common\Listeners\ApiErrorListener::onRender(Object(Zend\Mvc\MvcEvent))

```

我知道 data\logs 文件夹是可写的,因为这段代码在 Apache 上的 ZendFramework 中运行良好......我猜我需要以某种方式修改我的 Bootstrap.php?

如何调试此路径,更重要的是重构我的 PATH(s) 以用于生产和 PHPUnit 调用?

编辑:由于这个提示,我开始输出我当前的工作目录

https://stackoverflow.com/a/7493389/389976

    public function setUp()
    {
        $this->expectOutputString('');
        print_r("Current Working Directory = " . getcwd());
        print "";
     ...
    }

给我一​​些输出...

 Current Working Directory = ~ZendProject/module/ActivityWall/test

如何正确修改 CWD 以便 PHPunit 可以正确记录?我猜在 BootStrap.php 但是...?

【问题讨论】:

    标签: php zend-framework2 phpunit


    【解决方案1】:

    我没有尝试写入主日志文件,而是决定允许 PHPUnit 测试它自己的 test/data/logs/services-api.log

    优势:这可以隔离日志文件,让我可以肯定地看到来自哪里的内容..

    缺点:增加了我必须要tail -f的另一件事

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 2012-11-18
      • 2012-10-10
      • 2017-06-27
      • 1970-01-01
      相关资源
      最近更新 更多