У меня есть пакет, который я создал, который содержит базовый класс, от которого будут наследоваться будущие проекты.Я пытаюсь автоматизировать тестирование и перешел на тестирование носа.
Я новичок в Python, поэтому извиняюсь, если моя проблема заключается в чем-то тривиальном / рудиментарном.
В этом проекте используются популярныеПакет Python Finite State Machine переходы , от которого мой базовый класс наследует State (как видно из моего states.py).
После запуска $nosetests
изнутри base_tester/
, я получаю 3 повторных ошибки (только 1 вставлена для краткости):
E.EE.
======================================================================
ERROR: Failure: TypeError (__init__() missing 1 required positional argument: 'name')
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/user/.pyenv/versions/3.7.1/lib/python3.7/site-packages/nose/failure.py", line 39, in runTest
raise self.exc_val.with_traceback(self.tb)
File "/home/user/.pyenv/versions/3.7.1/lib/python3.7/site-packages/nose/loader.py", line 523, in makeTest
return self._makeTest(obj, parent)
File "/home/user/.pyenv/versions/3.7.1/lib/python3.7/site-packages/nose/loader.py", line 582, in _makeTest
return MethodTestCase(obj)
File "/home/user/.pyenv/versions/3.7.1/lib/python3.7/site-packages/nose/case.py", line 346, in __init__
self.inst = self.cls()
File "/home/user/repos/openrov/production/testers/base_tester/base_tester/states.py", line 6, in __init__
super().__init__(*args, **kwargs)
TypeError: __init__() missing 1 required positional argument: 'name'
Однако , когда я создаю небольшой тестовый проект и реализую класс наследования, он работает какпредназначена.Мне остается верить, что что-то не так с тем, что я делаю в test.py, но не могу понять, что.
Спасибо!
Структура проекта:
base_tester/
├── base_tester/
│ ├── __init__.py
│ └── states.py
├── setup.py
└── test/
├── __init__.py
└── test.py
states.py:
from transitions import State
# Parent class
class TestParent(State):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# To be implemented by inheriting classes
def run_test(self):
raise NotImplementedError()
base_tester / init .py:
from base_tester.states import *
test / test.py:
import unittest
from base_tester import TestParent
class Test1(TestParent):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def run_test(self):
pass
class Tester(unittest.TestCase):
test1 = Test1(name='test1')
def test_1(self):
self.assertTrue(True)
def main(self):
pass
if __name__ == '__main__':
unittest.main()