Использование Pytest Fixture для снимка экрана (определено в conftest.py) и используется с методом в структуре класса - PullRequest
2 голосов
/ 22 апреля 2019

Определен прибор Pytest (именуется как rp_logger) в файле conftest.py и пытается использовать в методе другого класса, например, rp_logger.info (""). Получение ошибки, что информация об атрибуте не определена.

файл контеста:

@pytest.fixture
def rp_logger(request):
    # Setting up a logging.
    logging.setLoggerClass(RPLogger)
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.DEBUG)
    # Create handler for Report Portal.
    rp_handler = RPLogHandler(request.node.config.py_test_service)
    # Set INFO level for Report Portal handler.
    rp_handler.setLevel(logging.INFO)
    return logger
Файл Testsuite:
@pytest.mark.single
@pytest.mark.events
@pytest.mark.usefixtures("rp_logger")
class MyTest(object):
    def test_verify_events_page(self, rp_logger):
        rp_logger.info("bbbb")
Трассировка стека ошибок:
def run(self, result=None):
    orig_result = result
    if result is None:
        result = self.defaultTestResult()
        startTestRun = getattr(result, 'startTestRun', None)
        if startTestRun is not None:
            startTestRun()

    self._resultForDoCleanups = result
    result.startTest(self)

    testMethod = getattr(self, self._testMethodName)
    if (getattr(self.__class__, "__unittest_skip__", False) or
        getattr(testMethod, "__unittest_skip__", False)):
        # If the class or method was skipped.
        try:
            skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
                        or getattr(testMethod, '__unittest_skip_why__', ''))
            self._addSkip(result, skip_why)
        finally:
            result.stopTest(self)
        return
    try:
        success = False
        try:
            self.setUp()
        except SkipTest as e:
            self._addSkip(result, str(e))
        except KeyboardInterrupt:
            raise
        except:
            result.addError(self, sys.exc_info())
        else:
            try:
              testMethod()

E TypeError: test_verify_events_page () принимает ровно 2 аргумента (1 дано)

...