fwrite / phpunit /文件权限冲突

时间:2014-11-20 15:19:25

标签: php json linux file-io

我正在VM-machine上运行Webinterface编写PHP脚本。开发发生在我的本地机器上,我通过PHPUnit(从命令行)运行我的单元测试。当然我在ubuntu-machines上都是root用户

当我应用函数jsonWrite($string)时会出现问题,该函数将数据从数组写入.json文件。此文件位于VM(服务器)上,并具有(这是测试环境:))777权限。该函数非常正常 - 直到我使用PHP-Unit,其中我的测试函数testRun()调用函数run(),其中使用jsonWrite

之后,文件权限更改为664,并且脚本无法再访问.json文件,我不明白,因为它最初拥有该文件。

Q1:如何在调用函数时阻止phpunit更改文件权限?

Q2:如何配置fwrite()fopen()以设置写入的特定权限?

我提前感谢您提供有用的提示/答案!

以下是相关功能的代码:

public function jsonWrite($string)
{
    ... converting string to array $game ...

    $fp = fopen('game.json', 'w');   // var_dump($fp); -> gives false after phpunit run
    fwrite($fp, json_encode($game)); 
    fclose($fp);

    return $game;
}

public function run()
{
    ... 
    $this->calculate($this);
    $string= $this->display($this);
    $this->jsonWrite($string);
    return  $this;
}   

public function testRun()
{
    $actual = new BowlCount();
    $actual = $actual->run();
    for($i=0;$i<10;$i++) {$this->assertInstanceOf('Frame', $actual->Frames[$i]);}
    ...
}

0 个答案:

没有答案