首页 / PHP / 仅在使用PHPUnit时找不到类
仅在使用PHPUnit时找不到类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了仅在使用PHPUnit时找不到类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2471字,纯文字阅读大概需要4分钟。
内容图文
![仅在使用PHPUnit时找不到类](/upload/InfoBanner/zyjiaocheng/819/ccf03966937143c8a860b44342ea47d8.jpg)
我正在使用Symfony2(2.7.3)应用程序进行测试,并且页面控制器仅在从PHPUnit(4.8.6)发送请求时才能加载类.
测试看起来像这样:
//AppBundle/Tests/Controller/PagesAvailableTest.php
<?php
namespace AppBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class PagesAvailableTest extends WebTestCase
{
public function testpages()
{
$client = static::createClient();
$client->request('GET', '/contact'); // Throws the error
}
}
使用$phpunit -c app /运行时抛出此错误:
PHP Fatal error: Class ‘AppBundle\Entity\ContactMessage’ not found in SymfonyRoot/src/AppBundle/Controller/ContactController.php on line 28
通过浏览器调用时,页面按预期加载.当使用$curl -I http:// localhost / contact调用时,页面的状态为HTTP / 1.1 200 OK
我看过其他similar questions讨论自动加载的问题 – 但Symfony docs建议类应该自动加载没有问题:
Just like in your real application – autoloading is automatically enabled via the bootstrap.php.cache file (as configured by default in the app/phpunit.xml.dist file).
<!-- app/phpunit.xml.dist -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="bootstrap.php.cache"
>
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
<directory>../src/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<!--<php>-->
<!--In my experimentation, I uncommented this and tinkered with
a few values. After having no luck, I commented it out again. -->
<!--<server name="KERNEL_DIR" value="." />-->
<!--</php>-->
<filter>
<whitelist>
<directory>../src</directory>
<exclude>
<directory>../src/*Bundle/Resources</directory>
<directory>../src/*Bundle/Tests</directory>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
如何在使用PHPUnit时加载这些类?
解决方法:
我尴尬地忽略了一个关键细节:我的应用程序运行在与我的PATH环境变量指向的不同的PHP解释器上.
当我运行$phpunit -c app /时,它使用我的操作系统的默认PHP(5.5.20) – 我的网站运行在PHP 5.6.10上,由MAMP提供.
通过在调用PHPUnit时提供自己的正确PHP解释器路径,我能够解决这个问题:
$/ path / to / correct / php phpunit -c app /
内容总结
以上是互联网集市为您收集整理的仅在使用PHPUnit时找不到类全部内容,希望文章能够帮你解决仅在使用PHPUnit时找不到类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。