在 conftest.py 文件中定义了 pytest 夹具(名称为 rp_logger),并尝试在不同类中的方法中使用 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
测试套件文件:
@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 个给定)