我正在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]);}
...
}