Прежде всего, я очень новичок в Zend Framework. На самом деле всего около 1 дня. Я также абсолютно нелюден с PHPUnit. Я не думаю, что использование Zend Framework практично без Unit Testing, и мне нужно понять, как это сделать за короткое время. Я был бы обязан, если бы вы могли помочь мне в этом. Это то, что я сделал.Zend Framework 2 - PHPUnit - Тестирование модулей - не выполнено никаких тестов плюс идеи
Я просматриваю документацию, и мне трудно следовать. Я не знаю, насколько это справедливо или если это необработанная документация. Я чувствую, что чего-то не хватает.
Я также установил Composer.
Вот что я сделал, я установил PHPUnit после установки PEAR. Теперь, когда я положил 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'
.
Файл находится в тестовой папке zf-tutorial/module/Application/test/ApplicationTest/Controller
.
В конце любой вещи, No tests executed!
- это все, что должен сказать блок PHP.
Что я сделал не так? Что я могу сделать, чтобы все исправить.
Я также хотел бы иметь краш-курс по теме (ссылка на блог или что-то в этом роде), я понимаю, что даже у Amazon нет книги для 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!
У меня есть такая же проблема. С версией PHPUnit на моем Mac тесты выполняются. С версией в Linux я получил ошибку выше. Кажется, действительно неясно, в чем разница и почему одна ОС запускает ее, а другая - нет. –