Модульное тестирование расширений для "внешней" программы с pyunit

Я изо всех сил пытаюсь узнать, с чего начать с unittest, прочитав учебник по погружению в python и посмотрев http://pyunit.sourceforge.net/.

У меня есть программное обеспечение для анализа (назовите его "prog.exe"), которое использует python для своих входных колод. Я начал писать модуль Python, который я собираюсь импортировать из этой входной колоды, чтобы обеспечить некоторую полезную функциональность. Итак, выполнение одного из этих анализов будет выглядеть так:

prog.exe inputdeck.py

где inputdeck.py содержит:

from mymodule import mystuff

Так как мне настроить и запустить тесты на mymodule? Если вышеупомянутое должно быть в системном вызове в setUp метод испытания, или как?


Ок - решение:

Не использовать unittest.main() как это инструмент командной строки. Вместо этого вызовите соответствующие методы unittest напрямую следующим образом:

Из командной строки запустите:

prog.exe mytests.py

где mytests.py содержит:

import unittest
# ... code to run the analysis which we'll use for the tests ...
# ... test definitions ...
suite = unittest.TestLoader().loadTestsFromTestCase(test_cases)
unittest.TextTestRunner().run(suite)

Смотрите пример по адресу http://docs.python.org/release/2.6.7/library/unittest.html.

1 ответ

Pyunit немного устарел (2001), теперь он полностью включен в дистрибутив ядра Python (http://docs.python.org/library/unittest.html). Вы должны начать читать эту документацию, особенно базовую часть примера.

Чтобы протестировать ваш модуль, вам нужно создать файл, назовем его mymodule_test.py и вставьте в него что-то вроде этого:

import unittest
from mymodule import mystuff

class MyTestCase(unittest.TestCase):
   def test_01a(self):
      """ test mystuff"""
      self.failUnless(mystuff.do_the_right_stuff())

if __name__ == '__main__':
    unittest.main()

и запустить его с python mymodule_test.py

Другие вопросы по тегам