首先,我對Zend Framework非常陌生。實際上在範圍內只有大約1天的時間。我對PHPUnit也絕對愚蠢。我不認爲沒有單元測試就使用Zend Framework是可行的,並且需要在短時間內瞭解如何使用。如果你能幫我解決這個問題,我將不勝感激。這就是我所做的。Zend Framework 2 - PHPUnit - 單元測試 - 未執行任何測試以及想法
我正在閱讀文檔,我發現很難遵循。我不知道它是否僅僅是我或者它是否是未處理的文檔。我覺得有些東西不見了。
我也安裝了Composer。
這是我做的,安裝PEAR後我安裝了PHPUnit。現在,當我把phpunit
一些地方給出了一個選項列表。所以我認爲它做得很好。
我從GitHub獲得了Zend Skeleton Application
。得到了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
無法打開。
然後,我將XML中的Bootstrap.php
更改爲/../../../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'
。
該文件位於測試文件夾zf-tutorial/module/Application/test/ApplicationTest/Controller
內。
在最後的事情,No tests executed!
是PHP單位不得不說的。
我做錯了什麼?我能做些什麼才能解決問題。
我也想在這個主題上有一個關於碰撞的課程(鏈接到博客或類似的東西),我知道亞馬遜甚至沒有一本關於ZF2的書。如果你能幫我一把,我會很高興。這真的很緊急!
預先感謝您!
增加:: 我錯過了測試文件夾中的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!
我有這個完全相同的問題。使用我的Mac上的PHPUnit版本,測試運行。隨着Linux上的版本,我得到上述錯誤。看起來真的不清楚究竟是什麼區別,以及爲什麼一個操作系統運行它而另一個不運行。 – 2013-09-05 04:51:08