PHPSpec - не запускается, кто-нибудь использует его для разработки php?

Искал stackoverflow для этого и не нашел ответа

Исходя из 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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
0
1 207
8

Ответы 8

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

Я действительно с нетерпением ждал возможности использовать PHPSpec, о, я думаю, проверю PHPUnit

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

Да, мне тоже нравится SimpleTest, но я думаю, что это хороший «стартовый» набор для тестирования, где PHPUnit - это эволюция (поддерживается IDE и другими).

Matt Refghi 28.11.2008 01:26

Последний выпуск SimpleTest был 2008/04/08

andho 25.10.2009 11:47

Вы можете писать тесты RSpec-ish в PHPUnit, но этому мешает пара вещей.

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

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

Я успешно использовал 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 ... Но это может кому-то помочь.

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

Обратите внимание, что поддержка PHPSpec прекращена:

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

Хочу добавить, что разработка PHPSpec перезапущена. Проверьте phpspec.net.

andho 22.05.2011 06:57

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

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

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

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

Другие вопросы по теме