Искал 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
ничего не возвращает






Мне тоже не удалось запустить его, но вы также можете использовать BDD с PHPUnit. Проверьте документация:
Я действительно с нетерпением ждал возможности использовать PHPSpec, о, я думаю, проверю PHPUnit
Я пробовал использовать phpspec, но обнаружил, что он слишком глючный / незрелый. Я очень рекомендую SimpleTest для написания модульных тестов.
Последний выпуск SimpleTest был 2008/04/08
Вы можете писать тесты 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.
Разработка PHPSpec возобновилась с августа 2010 года после двухлетнего перерыва. База кода теперь выглядит более стабильной. Я бы попробовал еще раз.
Сайт теперь находится по адресу www.phpspec.net.
Вы можете найти документацию на http://www.phpspec.net/documentation. По сути, это обновление первой версии.
Если вам потребуется дополнительная помощь, вы также можете связаться с разработчиками через их список рассылки: http://groups.google.com/group/phpspec-dev
Да, мне тоже нравится SimpleTest, но я думаю, что это хороший «стартовый» набор для тестирования, где PHPUnit - это эволюция (поддерживается IDE и другими).