PHPSpec - не запускается, кто-нибудь использует его для разработки php? - PullRequest
3 голосов
/ 27 ноября 2008

Искал в стеке поток и не нашел ответа

Исходя из Ruby On Rails и Rspec, мне нужен такой инструмент, как rspec (более легкий переход). Установил его через PEAR и попытался запустить, но он не работает (пока)

Просто хочу спросить, есть ли у кого-то такая же проблема, поскольку он вообще не работает

попытался запустить его с примером из руководства - http://dev.phpspec.org/manual/en/before.writing.code.specify.its.required.behaviour.html

phpspec NewFileSystemLoggerSpec

ничего не возвращает

даже работает

phpspec some_dummy_value

ничего не возвращает

Ответы [ 8 ]

6 голосов
/ 28 июля 2011

Разработка в PHPSpec возобновилась с августа 2010 года после двухлетнего перерыва. Кодовая база теперь выглядит более стабильной. Я бы дал еще одну попытку.

Сайт теперь находится по адресу www.phpspec.net

Документацию можно найти по адресу http://www.phpspec.net/documentation. Это в основном обновление первой версии.

Если вам потребуется дополнительная помощь, вы также можете связаться с разработчиками через их список рассылки: http://groups.google.com/group/phpspec-dev

0 голосов
/ 12 апреля 2011

Привет, это довольно старый вопрос на деле, но я думаю, что http://behat.org/ должно быть здесь. У всех есть эта проблема, должны проверить это.

0 голосов
/ 12 апреля 2011

Обратите внимание, что PHPSpec более не поддерживается:

http://blog.astrumfutura.com/2010/05/the-mockery-php-mock-objects-made-simple/#comment-88628508

0 голосов
/ 25 октября 2009

Я успешно использовал PHPSpec, но сейчас он активно не развивается? Это здорово, но не думаю, что я бы пошел с тупиком проекта. В любом случае, я использовал следующую настройку для запуска тестов из браузера, возможно, вы найдете что-то, что поможет вам настроить его для CLI.

PHPSpecConfiguration.php

$projectDir = realpath( dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' ) . DIRECTORY_SEPARATOR;

$simdal_root = $projectDir . 'library';
$phpspec_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'PHPSpec';
$mockery_root = $projectDir . '..' . DIRECTORY_SEPARATOR . 'Mockery';

$paths = array(
    'SimDAL'=>$simdal_root,
    'PHPSpec'=>$phpspec_root,
    'Mockery'=>$mockery_root
);

set_include_path( implode( PATH_SEPARATOR, $paths ) . PATH_SEPARATOR . get_include_path() );

require_once 'PHPSpec.php';
require_once 'Mockery/Framework.php';

class Custom_Autoload
{
    public static function autoload($class)
    {
        //$path = dirname(dirname(__FILE__));
        //include $path . '/' . str_replace('_', '/', $class) . '.php';
        if (preg_match('/^([^ _]*)?(_[^ _]*)*$/', $class, $matches)) {
            include str_replace('_', '/', $class) . '.php';
            return true;
        }

        return false;
    }

}

spl_autoload_register(array('Custom_Autoload', 'autoload'));

, а затем файл, который запускает все это: AllSpecs.php;

require_once 'PHPSpecTestConfiguration.php';

$options = new stdClass();
$options->recursive = true;
$options->specdocs = true;
$options->reporter = 'html';

PHPSpec_Runner::run($options);

Мне не нравится тестирование CLI ... Но это может кому-то помочь.

0 голосов
/ 31 мая 2009

Вы можете писать типы тестов RSpec в PHPUnit, но этому мешают несколько вещей

  • Модули PHPUnit не позволяют вам повторно объявить их, так что трудно установить до кучу окурков в до метод, а затем переопределить их как необходимо. Вы можете обойти это, организация заглушек для настройки после ожиданий, но это странно.

  • PHP не так динамичен, как Ruby, поэтому вы не может легко издеваться или заглушить класс методы, если вы специально разработать класс для этого и даже тогда это довольно уродливо (Это может изменить с поздним статическим PHP 5.3 обязательные функции).

0 голосов
/ 28 ноября 2008

Я пытался использовать phpspec, но нашел его слишком глючным / незрелым. Я настоятельно рекомендую SimpleTest для написания юнит-тестов.

0 голосов
/ 27 ноября 2008

Очень хотел использовать PHPSpec, о, я думаю, проверю PHPUnit

0 голосов
/ 27 ноября 2008

Я также не смог заставить его работать, но вы также можете использовать BDD с PHPUnit. Проверьте документацию :

...