PHPSpec - çalıştırmak için başarısız php geliştirme için kullanan herkes?

8 Cevap php

Bunun için stackoverflow arandı ve hiçbir cevap bulunamadı

Ruby on Rails ve RSpec geliyor, ben RSpec gibi bir araç (daha kolay geçiş) gerekir. PEAR ile yüklü ve çalıştırmayı denedim ama çalışmıyor (henüz) değil

O hiç koşmuyor yana sadece istiyorum, herkes kullanarak eğer aynı sorun var etrafında sormak

kılavuzundan bir örnek ile çalıştırmayı denedim - http://dev.phpspec.org/manual/en/before.writing.code.specify.its.required.behaviour.html

phpspec NewFileSystemLoggerSpec

hiçbir şey döndürür

Hatta çalışan

phpspec some_dummy_value

hiçbir şey döndürür

8 Cevap

PHPSpec üzerinde geliştirme, 2 yıl aradan sonra, Ağustos 2010 tarihinden itibaren yeniden başladı. Kod tabanı şimdi daha istikrarlı görünüyor. Ben başka bir deneyin vermek istiyorum.

Web sitesi artık www.phpspec.net bulunmaktadır

Sen http://www.phpspec.net/documentation de belgeleri bulabilirsiniz. Temelde ilk sürümü bir güncelleştirme olduğunu.

Should you require any further assistance you can also reach the developers through their mailing list: http://groups.google.com/group/phpspec-dev

Ben de çalıştırmak için alamadım, ama aynı zamanda PHPUnit ile BDD kullanabilirsiniz. Giriş documentation:

Gerçekten PHPSpec kullanarak ileri bakıyordu, oh sanırım PHPUnit içine kontrol edecek

Ben phpspec kullanarak çalıştı ancak olgunlaşmamış / çok adamcağız bulundu. Ben çok SimpleTest unittests yazmak için tavsiye ederim.

Siz PHPUnit testlerin RSpec-ish türlerini yazabilir, ama şeylerin bir çift tarafından engellenmiş oluyor.

  • PHPUnit mocks don't let you re-declare them so it's hard to set up a bunch of stubs in a before method and then override them as needed. You can work around this by arranging for the stubs to be setup after the expectations, but it's odd.

  • PHP isn't as dynamic as Ruby so you can't easily mock or stub out class methods unless you specifically design the class for this and even then it's pretty ugly. (This may change with PHP 5.3's late static binding features).

Ben başarıyla PHPSpec kullandım ama aktif şu anda gelişmiş değil mi? Bu harika ama ben bir durdu proje ile gideceğini sanmıyorum. Neyse ben gezgini gelen testleri çalıştırmak için aşağıdaki kurulum kullanılan noktasına, belki size CLI için kurmak için yardımcı olmak için bir şeyler bulacaksınız.

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'));

ve sonra tüm çalıştırır dosyası: AllSpecs.php;

require_once 'PHPSpecTestConfiguration.php';

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

PHPSpec_Runner::run($options);

Ben CLI test sevmiyorum ... Ama bu kimse yardımcı olabilir.

Merhaba onun oldukça eski S. senet, ama http://behat.org/ burada olması gerektiğini düşünüyorum. Herkes bu sorun bunu kontrol etmelisiniz vardır.