У меня есть два файла с модульными тестами, а тесты второго файла распространяются и переопределяют некоторые тесты в первом файле.Выполнение только тестов определенного файла
Иллюстрирование с очень упрощенным примером. Там в tests1.py
:
import unittest
class A(unittest.TestCase):
def setUp(self):
print "setup stuff A"
def test_stuff(self):
print "test stuff A"
if __name__ == "__main__":
unittest.main()
И tests2.py
:
import unittest
from tests1 import A
class B(A):
def setUp(self):
print "setup stuff B"
def test_stuff(self):
print "test stuff B"
if __name__ == "__main__":
unittest.main()
Я хочу, чтобы иметь возможность запускать каждый файл самостоятельно, или запустить весь набор файлов в одном пакете. И я не хочу вручную создавать разные комплекты, в которых я должен вручную указать набор тестов для запуска ...
Однако ... В приведенном выше примере, когда я запускаю python tests2.py
, тесты tests1.py
также побежали! И когда я запускаю их всех в партию, они бегают дважды. Я понимаю, что это происходит, потому что я импортирую A
из tests2.py
. Как я могу избежать этого? Есть ли лучшая практика для этого, за которой я должен следовать?
Я действительно запускаю тесты из PyCharm, но я полагаю, это может быть нецелесообразно, так как я могу воспроизвести ту же проблему, которая запускает тесты из командной строки.
выполнимо, даже если не идеально ... как будет новый '' Parent'' класс для каждой пары классы '' A'' и '' B''. Мне нужна совместная тестовая реализация для нескольких десятков случаев, поэтому будет много новых классов. –
Я отредактировал ваш пример, чтобы в '' A'' и '' B'' мы могли переопределить setUp(), определенный в '' Parent''. В противном случае TestCase.setUp() вызывается при вызове super() вместо предполагаемого Parent.setUp() –