Модульное тестирование расширений для "внешней" программы с 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