其实我是新的PHP。我在一个几乎是空的文件夹中运行这个(实际上是按照劳拉-cast教程:用TDD设计一个流畅的应用编程接口)。
我的目录结构看起来像
内部作曲家。json:
{
"require-dev": {
"phpunit/phpunit": "^5.2"
},
"autoload": {
"psr-4": {
"": "src/"
}
}
}
内部表达测试。php:
class ExpressionTest extends PHPUnit_Framework_TestCase
{
/** @test */
public function it_finds_a_string()
{
$regex = Expression::make()->find('www');
$this->assertRegExp($regex, 'www');
}
}
内心的表达。php
<?php
class Expression
{
}
然后我运行composer dump autoload并运行phpunit,但仍然得到:
"Fatal error: Class 'Expression' not found in
C:\Users\nobis\code\testing2\tests\ExpressionTest.php on line 8"
我的语法有问题吗?我对作曲家的理解是非常基本的。提前谢谢。
您需要在测试的顶部包括自动加载器。它通常是在
require __DIR__ . '/vendor/autoload.php';
您也可以添加一个phpunit.xml文件,告诉它自动加载器在哪里,然后它将在每次测试前运行它:
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd"
bootstrap="/path/to/bootstrap.php"
</phpunit>
PHPUnit本机不知道Composer,因此,如果不配置PHPUnit,它将不知道您的自动加载程序设置。
尝试使用--引导供应商/自动加载运行PHPunit。php
告诉它与自动加载文件一起加载。
如果这不起作用,请检查Composer配置中的命名空间值(即":"src/"
可能需要更改。)
我按照作曲家的说明,成功安装了作曲家。我想使用Tumblr全新的php api客户端。 我的文件夹结构: : : 使用也非常有效。但是当执行找不到该类。 致命错误:类'Tumblr\API\Client'未在第9行的[...]/htdocs/Tumblr/myfile.php中找到
文件自动加载_psr4。php不包含“autoloaddev”部分的名称空间,仅包含“autoload”部分的名称空间。 当我的作曲家。json读取 然后我跑了 My/vendor/composer/autoload_prs4。php文件显示为 谢谢
不知何故,我无法让自动加载正常工作。我正在为phpunit使用以下引导文件。 这个的输出显示,据我所知,注册应该是正常的。 不知怎的,我犯了以下错误。 在myproj文件夹src/test/unit/-DefaultDomainEventTest中,我的文件夹结构如下所示。php-bootstrap。php示例/-NotificationCountChangedEvent。php Notifica
如何自动加载助手函数(在任何类之外)?我可以在应该首先加载的某种引导文件?
我正在使用composer在我的项目中包含一个私有包,其中包含一些我将使用PHPUnit进行测试的类。包的大部分被正确地自动加载,我可以从单元测试中调用类,但是任何与它所在的目录命名相同的类都会抛出“未找到类”错误。 存储库符合psr-0,位于https://github.com/DeschutesDesignGroupLLC/IPS-Source 文件结构示例投掷错误: 调用
我开始学习Composer,并正在开发一个系统,在该系统中,我将文件与核心应用程序文件分开,如下所示: 所以,要在composer中设置此设置。json文件并访问所有类/App much/Core会这样吗? 还是有更正确的方法? 我也读过PSR-0和PSR-4的比较,我仍然有点怀疑应该使用哪一种。在我的情况下,我应该实现什么,PSR-0还是PSR-4?