我有一个控制器,从窗体中获取图像,并将此图像移动到一个特定的文件夹:
YML配置:
parameters:
app.logos_directory: "assets/images/logos/"
Controller.php
$logosDirectory = $this->getParameter('app.logos_directory');
$postLogo->move($logosDirectory, $filename);
ControllerTest.php
/** @var FileFormField $logoInputType */
$logoInputType = $form['team[logoFile]'];
$logoInputType->upload(self::$kernel->getProjectDir().'/tests/Fixtures/default.png');
$this->client->submit($form);
使用该应用程序,图像文件被移动到“projectDir/public/assets/images/logo”中
但是当我运行PHPUnit时,文件被移到“projectDir/assets/images/logo”中
我尝试编辑yml配置。我在两种情况下都检查了“%app.logos_directory%”=== assets/images/logos/
我希望symfony在phpunit测试时将我的文件移到public/assets/images/logo中。
1条答案
按热度按时间hwazgwia1#
在这两种情况下,都使用相对路径。
使用该应用程序,它是相对于文件
'projectDir/public/index.php'
的目录构建的使用PHPUnit时,它必须是文件
'projectDir/vendor/phpunit/phpunit/phpunit'
的目录,但PHPUnit对chdir('projectDir')
也有帮助,因此,当进一步执行脚本时,相对路径是相对于项目目录构建的。在测试中,还可以使用执行目录交换技巧,如
但是我认为最好改变主代码,使用绝对路径,或者把它包含在参数值中: