我有以下代码来创建xml doc
self.errorlist.append(
'<testcase classname=%(cls)s name=%(name)s time="%(taken)d">'
'<%(type)s type=%(errtype)s message=%(message)s><![CDATA[%(tb)s]]>'
'</%(type)s></testcase>' %
{'cls': self._quoteattr('.'.join(id.split('.')[:-1])),
'name': self._quoteattr(id.split('.')[-1]),
'taken': taken,
'type': type,
'errtype': self._quoteattr(nice_classname(err[0])),
'message': self._quoteattr(exc_message(err)),
'tb': escape_cdata(tb),
})
如何添加新标签或新类型,例如“D b” 我试过了
self.errorlist.append(
'<testcase classname=%(cls)s name=%(name)s db=%(db)s time="%(taken)d">'
'<%(type)s type=%(errtype)s message=%(message)s><![CDATA[%(tb)s]]>'
'</%(type)s></testcase>' %
{'cls': self._quoteattr('.'.join(id.split('.')[:-1])),
'name': self._quoteattr(id.split('.')[-1]),
'taken': taken,
'type': type,
'errtype': self._quoteattr(nice_classname(err[0])),
'message': self._quoteattr(exc_message(err)),
'tb': escape_cdata(tb),
})
但得到了:KeyError:'db'
我也试过普通的%(db)s,但是收到了错误: NameError:未定义全局名称“db”
以下是导入
来自xml.sax import saxutils
答案 0 :(得分:0)
解决:使用下面的代码,我在XML Doc中获取db =“mysql”
self.errorlist.append(
'<testcase classname=%(cls)s name=%(name)s db="%(db)s" time="%(taken)d">'
'<%(type)s type=%(errtype)s message=%(message)s><![CDATA[%(tb)s]]>'
'</%(type)s></testcase>' %
{'cls': self._quoteattr('.'.join(id.split('.')[:-1])),
'name': self._quoteattr(id.split('.')[-1]),
'db': self.db,
'taken': taken,
'type': type,
'errtype': self._quoteattr(nice_classname(err[0])),
'message': self._quoteattr(exc_message(err)),
'tb': escape_cdata(tb),
})