Symfony PhpUnit:错误:无法访问jarfile./../src/Java/File.jar

Symfony PhpUnit:错误:无法访问jarfile./../src/Java/File.jar,symfony,phpunit,Symfony,Phpunit,运行页面测试时,我遇到浏览器上没有的错误消息: 错误:无法访问jarfile./../src/Java/File.jar 以下是对我的控制器symfony 4中的文件的调用: exec("java -jar ./../src/Java/File.jar $params",$tab); 以下是我的测试方法: public function testView(){ $crawler = $this->client->request('GET','/test/1');

运行页面测试时,我遇到浏览器上没有的错误消息:

错误:无法访问jarfile./../src/Java/File.jar

以下是对我的控制器symfony 4中的文件的调用:

 exec("java -jar ./../src/Java/File.jar $params",$tab);
以下是我的测试方法:

public function testView(){

        $crawler = $this->client->request('GET','/test/1');

        if( Response::HTTP_OK !== $this->client->getResponse()->getStatusCode()){
           echo $crawler->filter('div.exception-message-wrapper')->text();  
           echo $crawler->filter('.trace-html-1')->text();
        }

        static::assertEquals(
            Response::HTTP_OK,
            $this->client->getResponse()->getStatusCode()
        );
    }

感谢您的帮助

在控制器中,您可以尝试使用指向jar的路径,该路径将与_DIR_;相对


为了理解,您可以阅读更多关于_DIR__

的内容,如果您允许我猜测的话,我猜这是因为文件不在给定位置,因为相对引用确实隐藏了它的实际位置。使用绝对路径可能会有所帮助,就像在报告为wokring的那些非测试环境中使用相同的测试工作目录一样。当运行exec命令时,它假定运行路径与加载初始php文件的路径相对。例如index.php。这可能与运行测试的路径不同。这里最好的办法是将exec命令中的绝对路径与_DIR一起使用__
 exec("java -jar " . __DIR__ . "../src/Java/File.jar $params", $tab);