我正在关注2.1版的官方Zend Framework 2教程.在单元测试部分,我应该在模块/应用程序/测试中运行phpunit我遇到了以下问题:
user@xubuntu1210:~/Desktop/zf2-tutorial/module/Application/test$ phpunit
PHPUnit 3.7.13 by Sebastian Bergmann.
Configuration read from /home/user/Desktop/zf2-tutorial/module/Application/test/phpunit.xml.dist
E
Time: 0 seconds, Memory: 4.00Mb
There was 1 error:
1) ApplicationTest\Controller\IndexControllerTest::testIndexActionCanBeAccessed
Zend\ModuleManager\Exception\RuntimeException: Module (Application) could not be initialized.
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:140
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:81
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:460
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php:204
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:100
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php:239
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:146
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:173
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:193
/home/user/Desktop/zf2-tutorial/vendor/zendframework/zendframework/library/Zend/Test/PHPUnit/Controller/AbstractControllerTestCase.php:236
/home/user/Desktop/zf2-tutorial/module/Application/test/ApplicationTest/Controller/IndexControllerTest.php:20
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
Run Code Online (Sandbox Code Playgroud)
我从教程中复制了IndexControllerTest.php的内容.
<?php
namespace ApplicationTest\Controller;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
class IndexControllerTest extends AbstractHttpControllerTestCase
{
public function setUp()
{
$this->setApplicationConfig(
include '/home/user/Desktop/zf2-tutorial/config/application.config.php'
);
parent::setUp();
}
public function testIndexActionCanBeAccessed()
{
$this->dispatch('/'); // this is line 20
$this->assertResponseStatusCode(200);
$this->assertModule('application');
$this->assertControllerName('application_index');
$this->assertControllerClass('IndexController');
$this->assertMatchedRouteName('home');
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么应用程序不会初始化,我会很感激任何指针.
Ocr*_*ius 32
这是一个自动加载问题,可能与(在教程中,它是你所拥有的)中的module_paths选项有关.config/application.config.php/path/to/application/config/test/application.config.php
这application.config.php可能看起来如下:
return array(
'modules' => array(
'Application',
'Album',
),
'module_listener_options' => array(
'module_paths' => array(
'./module',
'./vendor',
),
),
);
Run Code Online (Sandbox Code Playgroud)
要解决您的问题,请将值更改./module为绝对路径,例如__DIR__ . '/../module,假设application.config.php它位于config/应用程序的根目录中.
澄清:出现问题的原因./module是相对于你的路径cwd.你cwd在跑步时phpunit是在测试目录内,那里(显然)没有任何module目录.
use*_*356 -1
检查根配置文件夹中的 application.config 文件,我们必须在“模块”中定义应用程序。
示例代码:
'modules' => array(
'Application',
'FrontEnd',
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21686 次 |
| 最近记录: |