Как передать переменные с помощью пакета Unittest - PullRequest
1 голос
/ 11 мая 2010

Здравствуйте, у меня есть тест, использующий unittest. У меня есть набор тестов, и я пытаюсь передать переменные в каждом из тестов. Приведенный ниже код показывает используемый набор тестов.

class suite():

    def suite(self): #Function stores all the modules to be tested

        modules_to_test = ('testmodule1', 'testmodule2')
        alltests = unittest.TestSuite()
        for module in map(__import__, modules_to_test):
            alltests.addTest(unittest.findTestCases(module))
        return alltests

Он вызывает тесты, я хотел бы знать, как передавать переменные в тесты из этого класса. Пример тестового скрипта ниже:

class TestThis(unittest.TestCase):
    def runTest(self):
        assertEqual('1', '1')

class TestThisTestSuite(unittest.TestSuite):

    # Tests to be tested by test suite
    def makeTestThisTestSuite():
        suite = unittest.TestSuite()
        suite.addTest("TestThis")
        return suite

    def suite():
        return unittest.makeSuite(TestThis)


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

Таким образом, из class suite() я хотел бы ввести значение, чтобы изменить значение в значении assert. Eg. assertEqual(self.value, '1'). Я попытался sys.argv для unittest, и это не похоже на работу. Спасибо за любую помощь.

1 Ответ

4 голосов
/ 19 мая 2010

Передача интерактивных значений в командной строке не совсем соответствует цели автоматизированных модульных тестов. Как насчет использования библиотечного модуля ConfigParser и чтобы ваш TestCase метод подкласса *1001* загружал некоторые переменные тестовые входные данные таким образом?

Конечно, придерживаясь имеющегося у вас кода, как насчет глобальных переменных модуля или членов констант класса для хранения ваших тестовых данных? Например, после того, как вы импортируете тестовый модуль по имени, вы не можете просто сделать

module.testVars = [1, 2, 3, "foo"]

И имеют ли тесты в тестовых модулях ссылку на эту переменную (которая может быть пустым списком по умолчанию)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...