2011-12-14 2 views
0

У меня довольно сложная система, которую я хочу протестировать с помощью python. Мой тестовый код будет взаимодействовать с системой с помощью модуля Python, который я уже написал. Тем не менее, есть несколько вещей, которые я не смог выяснить в отношении структуры тестирования. Я еще не выбрал его, но, очевидно, я чувствую, что он направлен в unittest.Спецификация тестирования модуля Python

  1. Передача параметров испытаниям. Мне нужно передать конкретный идентификатор ко многим различным частям моего тестового кода, в зависимости от того, какой компонент тестируемой системы. Предусмотрен ли unittest для этого? Другими словами, прямо сейчас у меня есть тестовый скрипт, который я запускаю следующим образом: ./testscript.py 123 win 32 Как передать те же параметры аналогично в рамках тестирования?

  2. unittest обеспечивает setUp() и tearDown() методы, но они называются до/после каждый метод испытаний. Как я могу получить функции, которые вызывают до/после всей батареи тестов в TestCase?

Возможно, unittest не то, что я на самом деле хочу использовать?

+3

для # 1 см. Этот http://stackoverflow.com/questions/1029891/python-unittest-is-there-a-way-to-pass-command-line-options-to-the-app, который может быть сделано –

+0

Thanks FC это логично. Я предполагаю единственный способ получить параметры для модулей, которые я тестирую, а затем - глобальные. –

+0

Так должен ли я принять свой собственный ответ или вы хотите ответить на этот вопрос, чтобы я мог его принять? –

ответ

1

Что касается №2, кажется, что setUpClass() and tearDownClass() предназначены для этого. В документации даже показан пример ее использования для createExpensiveConnectionObject().

1

Я использую tox для запуска своих тестов в нескольких конфигурациях. Некоторые из моих unittests пропускают определенные тесты, если нет дополнительного модуля, что означает, что мне нужна проверка, чтобы убедиться, что код обнаружения модуля работает. У Tox нет простого способа указать любые аргументы командной строки, поэтому самым простым решением было пройти через переменную среды.

Указатель F.C.to python, unittest: is there a way to pass command line options to the app применяется, если вы решите, что дополнительные аргументы - путь.

Смежные вопросы