【发布时间】:2016-09-09 18:03:41
【问题描述】:
实际上正在开发 Bootstrap 3 插件,everythinks 现在可以工作了。我想用 php Unit 测试一切开发测试!
但是当我调用 php unit 时,它说他没有找到这样的类:
致命错误:在 C:\wamp3\www\wac_lucien\BsHelpers\BsHelpersCakePHP3\3.2\plugins\BsHelpers\tests\TestCase\View\Helper\BsHelpersTest.php 中找不到类 'BsHelpers\View\Helper\BsHelper'第 26 行
所以在尝试完全遵循 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>
知道为什么我在运行测试期间无法访问我的 Helper 吗?
请问各位,我真的需要想法
【问题讨论】:
-
听起来您的自动加载配置 (
composer.json) 不正确,或者您没有使用插件供应商文件夹中的正确作曲家自动加载器。如果没有关于上述可能问题的额外信息,以及关于您如何实际运行测试/调用 phpunit 的一些细节,除了猜测之外,任何人都几乎不可能做任何事情。 -
好的抱歉忘记了一些信息!我将把它添加到最初的问题中!
-
那个文件看起来很奇怪,它看起来更像是一个应用程序级的作曲家文件,而不是一个插件!?您是在开发独立插件,还是应用程序的一部分?另外,您如何/在哪里加载自动加载器 (
vendor/autoload.php)? -
这是一个独立的插件!并且自动加载在我的插件的 composer.json 中加载,例如“require_once 'vendor/autoload.php';”
-
"自动加载加载在我的插件的 composer.json 中" 可能是语言问题,但这并没有太大意义,PHP sn-p for确定不在
composer.json文件中。鉴于您正在开发一个独立的插件,路径./plugins/BsHelpers/...对我来说似乎是错误的。作曲家文件应位于插件根目录中,即src文件夹的上一层,因此命名空间的路径应为src和tests(其中测试配置应在autoload-dev中),如果有的话,App命名空间应该指向一个测试应用程序。
标签: php unit-testing cakephp helper