【问题标题】:how to get Test Case name with rally API如何使用拉力 API 获取测试用例名称
【发布时间】:2014-05-02 20:13:56
【问题描述】:

我正在尝试编写一个循环,该循环将返回一个包含测试集和测试用例的表。但是,我无法获取测试用例的名称,但会返回一个“对象 ID (OID)。代码为

_M_writer(u'</p>\r\n<table  class="objects" style="width: 60%">\r\n\t\t<tr>\r\n\t\t\t<th>TestSets</td>\r\n\t\t\t<th>TestCases</th>\r\n\t\t</tr>\r\n')

        for ts in testSets:

                __M_writer(u'\t\t\t\t')
                tc = ts.TestCases


                if tc:

                    __M_writer(u'<tr>')
                    __M_writer(u'<td>')
                    __M_writer(unicode(ts.FormattedID))
                    __M_writer(u'\t\t\t\t</td>')

                    __M_writer(u'<td>')

                    __M_writer(filters.html_escape(unicode(tc.FormattedID)))
                    __M_writer(u'</td>')

                __M_writer(u'</tr>\r\n')
                pass

        __M_writer(u'</table>\n')

tc.FormattedID 给我一个属性错误。见下文

 print >> fh, template.render(**workContext)

  File "C:\Python27\lib\site-packages\mako\template.py", line 397, in render
    return runtime._render(self, self.callable_, args, data)

  File "C:\Python27\lib\site-packages\mako\runtime.py", line 764, in _render
    **_kwargs_for_callable(callable_, data))

  File "C:\Python27\lib\site-packages\mako\runtime.py", line 796, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)

  File "C:\Python27\lib\site-packages\mako\runtime.py", line 822, in _exec_template
    callable_(context, *args, **kwargs)

  File "C:\Users\xxx\Documents\xx\tools\xxx\tmp\audit.base.html.py", line 130,               in render_body

    context['self'].content(**pageargs)
  File "C:\Users\xxx\Documents\TOOLS_WS\tools\xxxx\tmp\Validation Test Plan.html.py",               line 171, in render_content
    __M_writer(filters.html_escape(unicode(tc.FormattedID)))
AttributeError: 'list' object has no attribute 'FormattedID'

请需要帮助。谢谢

【问题讨论】:

  • 能否请您检查一下代码格式?

标签: python html rally mako pyral


【解决方案1】:

碰巧我错过了“forloop in my code:ts.TestCases”返回的是测试用例列表而不是单个测试用例。

修正后的代码如下:

__M_writer(u'</p>\r\n<table  class="objects" style="width: 60%">\r\n\t\t<tr>\r\n\t\t\t<th>TestSets</td>\r\n\t\t\t<th>TestCases</th>\r\n\t\t</tr>\r\n')

    for ts in testSets:

            __M_writer(u'\t\t\t\t')
            testCaseObjectList = ts.TestCases
            for tc in testCaseObjectList:
                if tc:
                     __M_writer(u'<tr>')
                     __M_writer(u'<td>')
                     __M_writer(unicode(ts.FormattedID))
                     __M_writer(u'\t\t\t\t</td>')
                     __M_writer(u'<td>')
                     __M_writer(filters.html_escape(unicode(tc.FormattedID)))
                     __M_writer(u'</td>')
                     __M_writer(u'</tr>\r\n')
                pass

     __M_writer(u'</table>\n')

干杯。

【讨论】:

  • 请注意,如果测试集没有测试用例,可能会引发错误
【解决方案2】:

这不是 Python 特有的,但必须显式获取 Name 才能访问它。尝试使用tc._refObjectName。无需获取_refObjectName,与Name相同。

【讨论】:

  • 我仍然收到此错误:__M_writer(filters.html_escape(unicode(tc._refObjectName))) AttributeError: 'list' object has no attribute '_refObjectName'
猜你喜欢
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-04
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
相关资源
最近更新 更多