Я работаю над большой кодовой базой, написанной на Python.Основной разработчик кода больше не работает для компании.
В коде есть автоматизированный пакет, который вместо использования автоматического обнаружения pytest вручную указывает, какие тесты нужно выполнить в серии TestClass.runTest (self)методов.
Я бы хотел исключить эти методы runTest и использовать автообнаружение, чтобы я мог распараллеливать тесты с помощью плагина pytest-xdist.
Если я просто исключу все методы runTest ивещи, которые, кажется, вызывают их, я получаю кучу:
_____________________________________________________________ ERROR at setup of TestRepo.test_checkin_checkout ______________________________________________________________
[gw5] linux2 -- Python 2.7.15 /usr/bin/python
self = <tests.repo_test.TestRepo testMethod=runTest>, args = ('test_checkin_checkout',), kwargs = {}
def __init__(self, *args, **kwargs):
> super(TestRepo, self).__init__()
repo_test.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
base/base_repo_test.py:15: in __init__
super(BaseRepoTests, self).__init__(*args, **kwargs)
E ValueError: no such test method in <class 'tests.repo_test.TestRepo'>: runTest
Я также пытался Google (много) о методах runTest (и methodName, который представляется аргументом TestFoo.__init__(self, methodName='runTest')
, и я не нахожу много.
В интересах понимания, когда требуется метод runTest , я попытался собрать небольшой тестовый код, чтобы посмотреть, смогу ли я его получить. зависит от метода runTest, но он не работает. В любом случае код автоматически обнаруживается.
Может кто-нибудь подсказать, пожалуйста, как получился метод runTestТребуется?
Вот небольшой тестовый модуль, который не может зависеть от runTest:
"""Unit test for tf module."""
import unittest
import tf
class TestPc(unittest.TestCase):
"""Unit tests for tf module."""
def __init__(self, methodName='runTest'):
"""Initialize."""
super(TestPc, self).__init__(methodName)
def setUp(self):
"""Set up for tests - but not really."""
super(TestPc, self).setUp()
self.foo = 'bar'
def test_add_1(self):
"""Test tf.add_1."""
assert tf.add_1(2) == 3
def test_add_2(self):
"""Test tf.add_2."""
assert tf.add_2(5) == 7
def test_mult_3(self):
"""Test tf.mult_3."""
assert tf.mult_3(11) == 33
def runTest(self):
"""Run the tests."""
self.test_add_1()
if __name__ == '__main__':
unittest.main()
Заранее спасибо!