събота, 17 януари 2009 г.

Още тестване и документация - Python


„ Програмиране с Python“, ФМИ

Стефан Кънев & Николай Бачийски

16.02.2007г.

Примерно пакетче с модули

Нека разгледаме модула world

  • __init__.py
  • destroyer.py
  • god.py

Прости тестове: test_world.py

  • клас наследник на unittest.TestCase
  • всеки негов метод започващ с test е отделен сценарий
  • unittest.main се грижи да намери подходящите класове и да извика подходящите им методи
  • просто!

setUp и tearDown

  • понякога се налага да правим едно и също преди и след някой сценарий (метод на TestCase)
  • методът setUp на TestCase ще се извика преди всеки сценарий
  • методът tearDownще се извика след всеки сценарий
  • def setUp(self):
    self.w = world.World()
    def tearDown(self):
    self.w = None

Специален TestCase

  • world.destroyer.do отпечатва разни неща, които не искаме да виждаме по време на тестовете
  • можем да си направим наследник на unittest.TestCase, който има желаната функционалност
  • и ползваме негов наследник в случаите, в които ни трябва тази функционалност
  • Пример: world.test.testcases

Под капака на unittest

  • TestLoader
  • TestSuite
  • TestResult
  • TextTestRunner
  • Пример: world.test

Документация—Интернет

  • http://docs.python.org/ — обновена, удобна, ако знаете къде да търсите, това което ви трябва
    • Library Reference—систематизирано описание на функции, модули
    • Global Module Index—азбучен списък с подробни описания на модулите
    • Language Reference—синтактични правила, твърдения, оператори
  • често най-бързия начин да намерите, каквото ви е нужно е търсене в Google за python <функция/метод/клас/…>

Документация—на вашия компютър

  • Под Windows—Python Manuals в chm формат. Може да се търси, на практика в него е цялата HTML документация.
  • HTML документация—почти същата като на сайта (малко по-стара вероятно) и й лиспва търсене. Ще я намерите на собствения си компютър някъде, освен ако за вашата ОС не се разпространява отделно от самия Python.

pydoc

  • Под Windows: python.exe pydoc.py Трябва да сложите в пътя директориите PythonX.Y и PythonX.Y/Lib.
  • На другите места: pydoc
  • pydoc <име>—търси документация за тази функция, тема, модул ключова дума…
  • pydoc -k <ключова дума>—търси тази дума в описанията на всички модули
  • pydoc -p <порт>—пуска HTTP сървър на вашия компютър и можете да разглеждате HTML документацията като отворите с браузъра си http://localhost:<порт>/
  • pydoc -g—отваря графична програма, в която може да търсите по ключова дума

Документация на наши модули

  • Помните ли docstring-овете?
  • def f(x, y):
    """f makes you happy putting a x into your y."""
  • Стига вашия модул да се намира някъде в пътя за търсене на Pythоn
    • можете да погледнете в sys.path
    • PYTHONPATH
    • модулът site
  • при разглеждане с pydoc ще се вижда и документацията на вашите модули
  • pydoc -w —записва документация на диска в HTML формат

epydoc

  • гъвкава система за генериране на документация
  • поддържа много формати
  • не е в стандартната Python дистрибуция

Няма коментари:

Публикуване на коментар