سؤال

كنت أتساءل عما إذا كان أي شخص لديه خبرة في كل من هذه الأشياء يمكنه إلقاء بعض الضوء على بارِز الفرق بين الاثنين إن وجد؟

هل هناك قوة محددة لكل منها تجعلها مناسبة لأي حالة معينة؟

هل كانت مفيدة؟

المحلول

هذا السؤال قديم تمامًا ولكن نظرًا لأنه لا يزال يحظى بحركة مرور وإجابات، على الرغم من أنني أذكر وجهة نظري هنا مرة أخرى، على الرغم من أنني قمت بذلك بالفعل في بعض الأسئلة الأخرى (الأحدث).

أنا حقا حقا حيرة أن SimpleTest ما زال يعتبر بديلاً لـ phpunit.ربما أنا مجرد معلومات خاطئة ولكن بقدر ما رأيت:

  • PHPUnit هو المعيار.معظم أطر العمل تستخدمه (مثل Zend Framework (1&2)، Cake، Agavi، وحتى Symfony تقوم بإسقاط إطار العمل الخاص بها في Symfony 2 لـ phpunit).
  • تم دمج PHPUnit في كل PHP IDE (Eclipse وNetbeans وZend Stuide وPHPStorm) ويعمل بشكل جيد.
  • يحتوي Simpletest على امتداد Eclipse لـ PHP 5.1 (ويعرف أيضًا باسم.القديم) ولا شيء غير ذلك.
  • تعمل PHPUnit بشكل جيد مع كل خادم تكامل مستمر حيث أنها تقوم بإخراج جميع ملفات السجل القياسية لتغطية التعليمات البرمجية وتقارير الاختبار.
  • أبسط لا.على الرغم من أن هذه ليست مشكلة كبيرة في البداية، إلا أنها ستزعجك كثيرًا بمجرد التوقف عن "مجرد الاختبار" والبدء في تطوير البرامج (نعم، هذا البيان استفزازي :) لا تأخذ الأمر على محمل الجد كثيرًا).
  • تتم صيانة PHPUnit بشكل نشط ومستقر ويعمل بشكل رائع مع كل قاعدة تعليمات برمجية وكل سيناريو وكل طريقة تريد كتابة اختباراتك بها.
  • (شخصي) توفر PHPUnit أجمل بكثير تقارير تغطية الكود من أبسط
  • باستخدام PHPUnit، يمكنك أيضًا الحصول على هذه التقارير داخل IDE الخاص بك (نتبيانز, ، كسوف، ...)
  • هناك أيضًا بعض الاقتراحات لـ web interface to phpunit tests.

لم أر حتى الآن أي حجة لصالح SimpleTest.ليس من السهل تثبيته نظرًا لأن PHPUnit متاح عبر الكمثرى:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

و"الاختبار الأول" يبدو متشابهًا إلى حد كبير.

اعتبارا من PHPUnit 3.7 إنه حتى أسهل في التثبيت وذلك بمجرد استخدام PHAR Archive

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar

أو للنوافذ فقط جارى التحميل فار والتشغيل:

php phpunit-.phar

أو عند استخدام تثبيت الملحن المدعوم طرق مثل

"require-dev": {
    "phpunit/phpunit": "3.7.*"
}

إلى الملحن.json الخاص بك.


لكل ما تريد اختباره، سيكون لدى PHPUnit حل وستكون قادرًا على العثور على المساعدة في أي مكان تقريبًا (SO، قناة #phpunit irc على freenode، تقريبًا كل مطور php ؛))

يرجى تصحيح لي إذا ذكرت شيئا خاطئا أو نسيت شيئا :)

نظرة عامة على أدوات اختبار PHP

فيديو: http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

الشرائح: http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

ويذكر أشياء مثل أتوم والذي يطلق على نفسه:"إطار اختبار وحدة بسيط وحديث وبديهي لـ PHP!"


الكشف الكامل

لقد كتبت هذه الإجابة في الأصل في يناير.2011 حيث لم يكن لدي أي ارتباط بأي مشروع اختبار PHP.ومنذ ذلك الحين أصبحت مساهمًا في PHPUnit.

نصائح أخرى

أفضّل PHPUnit الآن، ولكن عندما بدأت، استخدمت SimpleTest لأنه لم يكن لدي دائمًا إمكانية الوصول إلى سطر الأوامر.يعد SimpleTest برنامجًا رائعًا، ولكن الشيء الوحيد الذي يفوق PHPUnit، في رأيي، هو مشغل الويب.

الأسباب التي تجعلني أحب PHPUnit هي أنها تتكامل مع أدوات مطور PHP الأخرى مثل فينج (كما يفعل SimpleTest)، phpUnderControl, ، و زينك.اعتبارا من الإصدار 3.0 ذلك لديه سخرية الدعم، ويجري تطويره بنشاط، والوثائق ممتازة.

إن الطريقة الوحيدة للإجابة على هذا السؤال بنفسك هي تجربة كليهما لبعض الوقت، ومعرفة أيهما يناسب أسلوبك بشكل أفضل.

يحرر:يتكامل Phing الآن مع SimpleTest أيضًا.

  • لم أتمكن من فهم كيفية تنزيل PHPUnit وتثبيته.
  • ومع ذلك، يمكنني أن أفهم بسهولة كيفية تثبيت SimpleTest.

    (بقدر ما أستطيع أن أتذكر التعليمات الخاصة بـ PHPUnit قال شيئًا على غرار "تثبيته عبر الكمثرى ولن نقدم أي تعليمات حول كيفية القيام بذلك بأي طريقة أخرى") انظر:

  • http://www.phpunit.de/manual/current/en/installation.html

ل اختبار بسيط, ، ما عليك سوى تنزيله والإشارة إليه من الكود الخاص بك.

لذلك فاز Simpletest بالنسبة لي.

Baphled لديه مقالة لطيفة عن SimpleTest مقابل PHPUnit3.

نصف النقاط المذكورة في الإجابة المقبولة ببساطة غير صحيحة:

اختبار بسيط لديه

  • الإعداد الأسهل (الاستخراج إلى المجلد والتضمين والتشغيل)
  • ما عليك سوى التحقق من المجلد للتحكم في الإصدار (حاول القيام بذلك باستخدام phpunit هذه الأيام :))
  • تبعيات أقل والكثير من الإضافات (webtester، formtester، auth)
  • مراسل تغطية كود جيد، يسهل توسيعه (النقاط، أسماء الوظائف، الألوان)
  • ملخص تغطية الكود (وصل أخيرًا إلى PHPUnit 4.x)
  • مشغل ويب لائق ومشغل ويب Ajax، مع عمليات تنفيذ جماعية وملف واحد
  • لا تزال أداة الفرق أفضل (بدون مشاكل في المسافة البيضاء أو السطر الجديد)
  • محول/مجمّع لتشغيل SimpleTests بواسطة phpUnit والعكس
  • التوافق PHP5.4+

الجانب السلبي:

  • ليس معيار الصناعة (PHPUnit)
  • لم تتم صيانتها بشكل نشط

لقد وجدت أن إعداد SimpleTest أسهل من إعداد PHPUnit.فقط قم باستخراجه وأنت على ما يرام.من فوائد ذلك أنك تعمل على أكثر من جهاز واحد، حيث يمكنك تخزين إطار عمل الاختبار بأكمله بنفس طريقة كود المصدر الخاص بك، وبالتالي تعرف أنك تستخدم نفس كود إطار العمل.خاصة إذا قمت بتعديله بأي شكل من الأشكال.

لذا، أود أن أقول إن قوة SimpleTest هي أنها خفيفة الوزن للغاية وقابلة للحمل.

يأتي SimpleTest أيضًا مزودًا بواجهة HTML رسومية بسيطة جدًا، والتي من السهل جدًا توسيعها إذا كنت ترغب في ذلك.على حد علمي، لا تتضمن PHPUnit واجهة مستخدم رسومية بتنسيق HTML، ولكن هناك واجهات مستخدم رسومية متاحة للتنزيل، مثل رائع.

حسنًا، لقد قمت بإنشاء مشغل حالة اختبار واجهة المستخدم المستند إلى الويب phpUnit وجعلته متاحًا على sourceforge.يستخدم ajax ولديه واجهة رائعة جدًا أيضًا إذا كنت تريد تجربتها، فتحقق من ذلك في sourceforge.اسم المشروع هو phpunitwebui والموقع هو http://phpunitwebui.sourceforge.net/

كما تمت الإشارة إليه، فهو في الغالب اختيار مفضل، حيث سيقوم كلاهما بإجراء الاختبارات التي تكتبها له وتقديم تقرير بالنتائج.

تعد واجهة مستخدم الويب Simpletest مفيدة جدًا، ولكنها قد تصبح مرهقة في بعض الأحيان.في مشروعي الحالي، كان علي أن أبذل المزيد من العمل في النظام لجعل تطبيقي (واجهة برمجة التطبيقات) يعمل مع واجهة الويب (إعداد Apache بشكل صحيح، ونسخ الملفات إلى جذر public_html، وما إلى ذلك) مما كان يمكن أن يكون عليه الأمر. لتشغيل phpunit ببساطة من مساحة عمل Eclipse.لذلك اخترت PHPUnit.كما كان استخدام PEAR بمثابة إضافة كبيرة لأنك لا تحتاج إلى تتبع التحديثات يدويًا.تشغيل ببساطة pear upgrade من حين لآخر، وسيتم تحديث PHPUnit.

لم أتحقق من Simple Test منذ فترة، وفي المرة الأخيرة كان يحتوي على مكون إضافي لـ Eclipse، وهو عامل رئيسي بالنسبة لي، ولكن لم يتم تحديثه لفترة طويلة.لا يزال سيباستيان بيرجمان يعمل بنشاط كبير على PHPUnit، لكنه لا يزال يفتقر إلى مكون إضافي جيد لـ Eclipse - ولكنه مضمن في Zend Studio الجديد.

هذا السؤال قديم لكني أريد أن أضيف تجربتي:يبدو أن PHPUnit هو المعيار الآن، ولكن إذا كنت تعمل مع نظام قديم يستخدم الكثير والكثير من المتغيرات العامة، فقد تتعثر منذ البداية.يبدو أنه لا توجد طريقة جيدة لإجراء اختبارات باستخدام المتغيرات العامة في PHPUnit، ويبدو أنه يتعين عليك تعيين المتغيرات الخاصة بك عبر $GLOBALS وهو أمر غير جيد إذا كان لديك الكثير من الملفات التي تقوم بتعيين المتغيرات العامة في كل مكان.حسنًا، قد يقول البعض أن المشكلة تكمن في النظام القديم ولكن هذا لا يعني أننا لا نستطيع إجراء اختبارات على هذا النظام.مع SimpleTest يكون الأمر بسيطًا.أفترض أنه إذا سمحت لنا PHPUnit بتضمين ملف على مستوى العالم، وليس ضمن نطاق فئة/وظيفة، فلن يمثل ذلك مشكلة كبيرة أيضًا.

الحل الواعد الآخر هو http://www.enhance-php.com, ، يبدو جميل :)

هذا من وجهة نظر مطور PHP عادي جدًا:

لقد استغرق الأمر مني يومين لفهم PHPUnit، وفي الغالب كنت أحاول تصحيح الأخطاء ضمن Eclipse، لكني توقفت أخيرًا.

لقد استغرق الأمر ساعتين لإعداد Simpletest بما في ذلك تصحيح الأخطاء ضمن Eclipse.

ربما سأجد أوجه القصور في Simpletest في المستقبل ولكنه حتى الآن يقوم بما أحتاج إليه جيدًا:فئات الاختبار والكائنات الوهمية وتصحيح أخطاء كود الاختبار وواجهة الويب للحصول على لقطة سريعة للموقف.

مرة أخرى: هذا من وجهة نظر مستخدم PHP عادي جدًا (ولا حتى المطور :-)

عندما يكون هناك الآلاف من الوظائف التي يمكن اختبارها مرة واحدة، فإن phpunit هو الطريق الصحيح، الاختبار البسيط لا يكفي لأنه يعتمد على الويب.

ما زلت أستخدم الويب البسيط للاختبار على نطاق صغير.

لكن كلاهما جيد

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