مرجع
آخر الزيارات

دوك تيست

676 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: دوك تيست هو عبارة عن عنصر في المكتبة القياسيه في لغة البرمجة بايثون. تجد هنا «البرمجة الحرفية والدوك نيست»، «>>>» و«الامثلة» ضمن 20 قسماً.
المحتويات
  1. البرمجة الحرفية والدوك نيست
  2. >>>
  3. الامثلة
  4. >>> page = file.readlines
  5. >>> o # doctest: +ELLIPSIS
  6. ... This fish has a yellow car
  7. >>> from StringIO import StringIO
  8. محددات التنفيذ
  9. التطبيق في لغات البرمجة الأخرى
  10. Demonstration doctests
  11. >>>
  12. doctest.testmod
  13. توثيق المكتبات عن طريق الامثله
  14. return [lst.index(i) for i in lst]
  15. representation you want.'
  16. تفتيش البايثون العميق أو الدقيق
  17. 3
  18. الدوك تيست وتكوين التوثيق
  19. المثال الثالث: كلمات مميزه
  20. >>> x

بدايةً، دوك تيست هو عبارة عن عنصر في المكتبة القياسيه في لغة البرمجة بايثون

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

البرمجة الحرفية والدوك نيست

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

>>>

  • return set(word for line in page for word in line.split)
  • def _test:
  • import doctest

الامثلة

  • المثال الأول: دوك تيست مدمج بمتسلسلات الدوك الخاصة ب داله
  • def list_to_0_index(lst):
  • """A solution to the problem given in:
  • https://rgrig.blogspot.com/2005/11/writing-readable-code.html
  • 'Given a list, lst, say for each element the 0-index where it appears for
  • the first time. So the list x = [0, 1, 4, 2, 4, 1, 0, 2] is
  • transformed into y = [0, 1, 2, 3, 2, 1, 0, 3]. Notice that for all
  • i we have x[y[i = x[i]. Use any programming language and any data

>>> page = file.readlines

  • >>> words = unique_words(page)
  • >>> print sorted(list(words))
  • ["This", "a", "blue", "car", "cat", "fish", "has", "mat",
  • "on", "ondur", "one", "red", "sat", "star", "the", "two",
  • "was", "yellow"]

>>> o # doctest: +ELLIPSIS

Exceptions can be tested very nicely too:

... This fish has a yellow car

>>> file = StringIO(fileText)

... This fish has a yellow star"""

>>> from StringIO import StringIO

  • >>> fileText = """the cat sat on the mat
  • ... the mat was ondur the cat
  • ... one fish two fish red fish
  • ... blue fish

محددات التنفيذ

  • ال دوك تيست يقوم باستخدام امكانيات البايثون الاتيه بطريقه مبتكره.
  • سلاسل ال دوت
  • قشره البايثون التفاعلية

التطبيق في لغات البرمجة الأخرى

  • ExUnit.DocT مشابه تماما لل دوك تيست
  • Haskell تطبيق لل دوك تيست
  • Elm كتابة التوثيق
  • Rust كتابة التوثيق
  • المصادر

من جانب آخر، ++C اقرب تطبيق أو تنفيذ ممكن يمكن كتابة الاختبارات مباشرة في كود الإنتاج بأقل قدر من النفقات العامة

Demonstration doctests

  • This is just an example of what a README text looks like that can be used with
  • the doctest.DocFileSuite function from Python's doctest module.
  • Normally, the README file would explain the API of the module, like this:
  • >>> a = 1
  • >>> b = 2
  • >>> a + b

>>>

"""

doctest.testmod

_test

if __name__ == "__main__":

توثيق المكتبات عن طريق الامثله

وفي السياق ذاته، بناءا على اساسات نتائج مترجم البايثون التفاعلي، يمكن دمج النص بالاختبار وتجربته على المكتبة لتحقيق النتائج المطلوبة

ومن جهة أخرى، الدوك تيست ملائم لاعطاء مقدمة للمكتبة من خلال التزويد كيف تعمل واجهه برمجه التطبيقات

return [lst.index(i) for i in lst]

المثال الثاني: دمج الدوك تيست بملف نص عادي

representation you want.'

  • >>> x = [0, 1, 4, 2, 4, 1, 0, 2]
  • >>> list_to_0_index(x)
  • [0, 1, 2, 3, 2, 1, 0, 3]

تفتيش البايثون العميق أو الدقيق

علاوةً على ذلك، عند استخدام البايثون، الحث الأول يتبع بالاوامر الجديده. والثاني عند تكمله الاوامر على عده اسطر ونتيجه تنفيذ الاوامر من المتوقع ان تكون على الاسطر التاليه سطر خالٍ، أو سطر اخر يبدأ بالحث الأول يرى بأنه المُخرج من الأمر

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

3

  • Notice, that we just demonstrated how to add two numbers in Python, and
  • what the result will look like.
  • A special option allows you to be somewhat fuzzy about your examples:
  • >>> o = object

الدوك تيست وتكوين التوثيق

في هذا الإطار، ال EpyText وال Docutils يدعمان صيغه اقسام الدوك تيست في متلسلسلات الدوك

المثال الثالث: كلمات مميزه

  • def unique_words(page):
  • Return set of the unique words in list of lines of text.
  • Example:

>>> x

  • Traceback (most recent call last):
  • ...
  • NameError: name 'x' is not defined

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

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