سؤال

ربما هذا سؤال سخيف.

أنا أجرب Python Doctest ، وأحاول الجري هذه مثال

وتنتهي مع

if __name__ == "__main__":
    import doctest
    doctest.testfile("example.txt")

لقد وضعت "example.txt" في نفس المجلد مثل الملف المصدر الذي يحتوي على رمز المثال ، لكنني أحصل على الخطأ التالي:

Traceback (most recent call last):
File "test_av_funktioner.py", line 61, in <module>
doctest.testfile("example.txt")
File "C:\Python26\lib\doctest.py", line 1947, in testfile
text, filename = _load_testfile(filename, package, module_relative)
File "C:\Python26\lib\doctest.py", line 219, in _load_testfile
return open(filename).read(), filename
IOError: [Errno 2] No such file or directory: 'example.txt'

هل يمكنني إخباري/تعيينه بطريقة أو بأخرى حيث تبحث وحدة Doctest عن الملف المحدد؟

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

المحلول

يبحث الدكتوراه بالنسبة إلى دليل وحدة الاتصال افتراضيًا (ولكن يمكنك تجاوز هذا).

نقلا عن المستندات ل doctest.testfile:

حجة اختيارية module_relative يحدد كيفية تفسير اسم الملف:

  • إذا module_relative هو حقيقي (الافتراضي) ، ثم filename يحدد مسار ترشيح الوحدة النمطية المستقلة عن نظام التشغيل. بشكل افتراضي ، يكون هذا المسار بالنسبة إلى دليل وحدة الاتصال ؛ ولكن إذا package تم تحديد الوسيطة ، ثم تكون نسبة إلى تلك الحزمة. لضمان استقلال نظام التشغيل ، filename يجب استخدام / الشخصيات لفصل شرائح المسار ، وقد لا تكون مسارًا مطلقًا (أي ، قد لا تبدأ بـ /).
  • إذا module_relative هو خطأ شنيع, ، ومن بعد filename يحدد مسار OS الخاص. قد يكون المسار مطلقًا أو نسبيًا ؛ يتم حل المسارات النسبية فيما يتعلق بدليل العمل الحالي.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top