测试CakePhp3插件 - >加载插件/缺少类时出错

时间:2016-05-13 13:48:41

标签: php unit-testing cakephp helper

实际上正在使用Bootstrap 3插件,everythinks现在可以正常工作。我想用php Unit测试一切开发测试!

但是当我打电话给php单位时,它说他没有找到这样的课程:

  

致命错误:Class' BsHelpers \ View \ Helper \ BsHelper'在第26行的C:\ wamp3 \ www \ wac_lucien \ BsHelpers \ BsHelpersCakePHP3 \ 3.2 \ plugins \ BsHelpers \ tests \ TestCase \ View \ Helper \ BsHelpersTest.php中找不到

因此,在尝试完全遵循CakePHP3的文档后,我遇到了问题。现在我只有那个:

<?php
namespace BsHelpers\Test\TestCase\View\Helper;

use BsHelpers\View\Helper\BsHelper;
use Cake\TestSuite\TestCase;
use Cake\View\View;

class BsHelperTest extends TestCase
{
    public function setUp()
    {
        parent::setUp();

        $this->View = new View();
        $this->Bs = new BsHelper($this->View);
    }

    public function testBar()
    {

    }
}

我认为问题可以在bootstrap.php中。插件加载器的路径可能是假的,但我不知道如何设置......

Plugin::load('BsHelpers', ['path' => ROOT . DS]);

在我的插件的composer.json中,我得到了:

    "autoload": {
    "psr-4": {
        "App\\": "src",
        "BsHelpers\\": "./plugins/BsHelpers/src",
        "BsHelpers\\Test\\": "./plugins/BsHelpers/tests"
    }
},

我调用php单元测试(在我的插件文件夹中)

vendor\bin\phpunit

我的phpunit.xml.dist看起来像

<phpunit
colors="true"
stopOnFailure="false"
bootstrap="./tests/bootstrap.php"
>

<testsuites>
    <testsuite name="BsHelpers Test Cases">
        <directory>./tests/</directory>
    </testsuite>
</testsuites>

<filter>
    <whitelist>
        <directory suffix=".php">./src/</directory>
    </whitelist>
</filter>

在运行测试期间,为什么我无法访问助手?

Pls家伙我真的需要想法

1 个答案:

答案 0 :(得分:0)

更新

我再次尝试运行测试。我发现错误并更改了该行,但我不明白为什么会在测试中给出问题。

最初我尝试通过使用this plugin from friendsofcake来理解CakePHP3插件,当我制作插件(插入更多功能)时,我只是复制了composer.json以查看我的插件的结果。只是忘了改变这一部分。

因此错误发生在插件的composer.json中:

{
"name": "friendsofcake/bootstrap-ui",
"description": "Twitter Bootstrap 3 support for CakePHP 3",
"type": "cakephp-plugin"
}

我用

更改了名称行
"name": "lucienleroux/bs-helpers",

而且我真的不明白为什么这样才能解决问题,因为我无法设置像&#34; lucienleroux / bs-helpers&#34;在我的插件中。事实上,它适用于任何其他字符串,例如&#34; test / bs_helpers&#34; ......如果你明白我对答案很感兴趣!