Как повторяются некоторые комментарии, структурирование ваших тестов таким образом, вероятно, является недостатком дизайна самих тестов, и вам следует рассмотреть возможность их реструктуризации. Однако, если вы хотите сделать это и полагаться на тот факт, что используемое вами средство запуска тестов выполняет их в алфавитном (кажущемся) порядке, я предлагаю следующее.
Подобно тому, что говорил @Matthias, но я бы сделал одну вещь по-другому для случаев, когда вы можете решить наследовать от класса позже.
from unittest import TestCase, main as unittest_main
class TestSimpleFoo(TestCase):
foo = 'bar'
def setUp(self):
pass
def test_a(self):
self.assertEqual(self.__class__.foo, 'bar')
self.__class__.foo = 'can'
def test_f(self):
self.assertEqual(self.__class__.foo, 'can')
if __name__ == '__main__':
unittest_main()
Разница между этим ответом и ответом @Matthias, который вы приняли, заключается в явном объявлении класса по сравнению с поиском указанной ссылки на класс.
TestSimpleFoo vs self.__class__
Я предпочитаю динамичность, поэтому я могу наследовать тесты позже и запускать оба тестовых класса один за другим, не пересекаясь между ними. Потому что, если вы выберете наследование от этого класса, явное указание ссылки на класс приведет к тому, что оба тестовых класса будут работать с этой ссылкой, а не с их собственными соответствующими классами.
person
rdp
schedule
24.07.2014
self.foo
относится к переменной экземпляра, аfoo = 'bar'
(где он расположен) назначает переменную класса.] - person user2864740   schedule 30.01.2014login
устанавливаетaccess_token
, который мне нужен для следующих нескольких тестов. - person A T   schedule 30.01.2014setUp
, чтобы имитировать соответствующий access_token? (Заставьте setUp вызывать OAuth по мере необходимости; на этом этапе больше интеграционного тестирования.. но примите во внимание, что setUp не может быть неправильным, иначе другой TestCase потерпит неудачу.) - person user2864740   schedule 30.01.2014setUpClass()
. Он запускается один раз, когда вызывается ваш класс. Вы можете использовать его для настройки переменных, необходимых для нескольких тестов. - person Stevoisiak   schedule 06.11.2017