سؤال

وأنا بدأت للتو لمحاولة الخروج phpunit على بعض التعليمات البرمجية الموجودة. اصطلاح التسمية التي نستخدمها هي أن الطبقة MyClass ينبغي أن يكون في MyClass.class.php. يبدو PHPUnit بحاجة إلى أن الملف يجب أن يتم استدعاء MyClass.php.

هل هناك أي وسيلة للتغلب على هذه؟

ولقد لاحظت أنه بينما كان يحاول إنشاء فئة اختبار الهيكل العظمي:

phpunit --skeleton-test MyClass.class

PHPUnit 3.3.4 by Sebastian Bergmann.

Could not find class "MyClass.class" in "/home/jd/skeleton/classes/MyClass.class.php".
Fatal error: Call to a member function getOutClassName() on a non-object in /usr/share/php/PHPUnit/TextUI/Command.php on line 470
هل كانت مفيدة؟

المحلول

وانها ليست شرطا، لمجرد مسلم به. يمكنك إرسال بنفسك اختبار الحالات.

والهيكل العظمي يجعل من مجرد واحد نموذج "الطريق السهل" الذي يجعل وظائف وهمية لكل ما تبذلونه من الطبقات وظائف وهمية.

وكذلك

phpunit --skeleton-test MyClass  MyClass.class.php

وقد تفعل ما تريد.

   Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>

--skeleton-class         Generate Unit class for UnitTest in UnitTest.php.
--skeleton-test          Generate UnitTest class for Unit in Unit.php.

وذلك من خلال هذا المنطق، إذا كنت لا اقول انه ما ملف الطبقة هي في انها ستحاول تخمين، إذا لم يقولوا ذلك ملف ما هي الطبقة في، فإنه لن تخمين.

نصائح أخرى

وركضت حتى ضد مشكلة مماثلة عند namespaced الطبقة يتم إنشاء هيكل عظمي ل. أنا باستخدام phpunit 3.5.6 من سطر الأوامر. لم المثال وثائق phpUnit لا تعمل بالنسبة لي وأنا لا يمكن العثور على إجابة على الانترنت لذلك أنا أحسب أنني حصة من هنا. افترض أن لديك فو الطبقة داخل الدليل / بلدي / دير وانها اعلنت في ملف واحد Foo.php ذلك المسار الكامل لملف فئة غير /my/dir/Foo.php

وافترض أيضا أن يعلن فو كما يلي:

<?php

namespace my\space;
class Foo
{
    ...
}

في أجل توليد هيكل عظمي اختبار حرصت كنت في الدليل حيث يقيم Foo.php ثم ركضت الأمر التالي:

user[/my/dir]$ phpunit --skeleton-test my\\dir\\Foo Foo.php

والتي حصلت هيكل عظمي بلدي لتوليد. مفتاح والهروب مائل كما توثيق phpUnit يذكر بمساحات ولكن تظهر فقط مائل واحد. آمل أن يساعد هذا شخص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top