首先,我对 Zend 框架非常陌生。实际上在范围内只有大约 1 天。我对 PHPUnit 也很傻。如果没有单元测试,我认为使用 Zend Framework 是不切实际的,我需要在短时间内了解如何使用。如果你能帮我解决这个问题,我将不胜感激。这就是我所做的。
我正在浏览文档,我发现很难理解。我不知道是我自己还是未处理的文档。我觉得有些东西不见了。
我还安装了作曲家。
这是我所做的,我在安装 PEAR 后安装了 PHPUnit。现在,当我把phpunit
一些放在哪里时,它会给出一个选项列表。所以我认为它做得很好。
我Zend Skeleton Application
从 GitHub 得到的。熬过去Zend Framework
了Composer
。
我浏览了文档。我感觉我的头要炸了!!!我的问题尤其是单元测试。问题在于 http://framework.zend.com/manual/2.1/en/user-guide/unit-testing.html的内容。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="Bootstrap.php">
<testsuites>
<testsuite name="zf2tutorial">
<directory>./ApplicationTest</directory>
</testsuite>
</testsuites>
</phpunit>
该文件位于zf2-tutorial/module/Application/test
. 我的问题是,不是Bootstrap.php
驻留的文件zf2-tutorial/module/Application/test
吗?
文档说要创建一个 Bootstrap.php 但在{Application Folder}/test
. 当我运行它时phpunit
,zf2-tutorial/module/Application/test
它说文件zf2-tutorial/module/Application/test/Bootstrap.php
无法打开。
然后我Bootstrap.php
将 XML 更改为/../../../test/Bootstrap.php
(根据要沿 XML 文件创建的文档的建议),这解决了错误。但测试计数为零:No tests executed!
这是测试类:
<?php
namespace ApplicationTest\Controller;
use Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase;
//use PHPUnit_Framework_TestCase;
//I also tried PHPUnit_Framework_TestCase instead of AbstractHttpControllerTestCase
class IndexControllerTest extends AbstractHttpControllerTestCase
{
public function setUp()
{
$this->setApplicationConfig(
//include '/path/to/application/config/test/application.config.php'
include __DIR__ . '/../../../../config/application.config.php'
);
parent::setUp();
}
/**
* @test
*/
public function testIndexActionCanBeAccessed(){
$this->dispatch('/');
$this->assertResponseStatusCode(200);
$this->assertModule('application');
$this->assertControllerName('application_index');
$this->assertControllerClass('IndexController');
$this->assertMatchedRouteName('home');
}
}
include '/path/to/application/config/test/application.config.php'
???我重命名为include __DIR__ . '/../../../../config/application.config.php'
.
该文件位于 test 文件夹zf-tutorial/module/Application/test/ApplicationTest/Controller
中。
归根结底,这No tests executed!
就是 PHP 单元要说的全部内容。
我做错了什么?我该怎么做才能让它正确。
我还想参加该主题的速成课程(链接到博客或类似的东西),我知道即使是亚马逊也没有 ZF2 的书。如果你能帮我一把,我会很高兴。真的很紧急!
先感谢您!
Additions:: 我错过了测试文件夹中Bootstrap.php 的制作。
新的XML是这样的
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="Bootstrap.php">
<testsuites>
<testsuite name="zf2tutorial">
<directory>./ApplicationTest</directory>
</testsuite>
</testsuites>
</phpunit>
Bootstrap.php 看起来像这样
<?php
chdir(dirname(__DIR__));
include __DIR__ . '/../../../init_autoloader.php';
init_autoloader.php
修改为找到zendframework库。
但 PHPUnit 仍然说No tests executed!