zoukankan      html  css  js  c++  java
  • 修改testtools框架,将测试结果显示用例注释名字

    在之前介绍的测试框架testtool中,发现测试结果中显示的都是测试用例的函数名,并没有将注释显示出来

    这很不符合国人使用阿,没办法,自己动手来改改吧

    首先,testtools是继承unittest的一个工具,所以应该存在unittest TestCase的相关函数

    看看testtools.testcase原码吧,发现,不显示注释的奥秘在这里

    class TestCase(unittest.TestCase):
        """Extensions to the basic TestCase.
    
        :ivar exception_handlers: Exceptions to catch from setUp, runTest and
            tearDown. This list is able to be modified at any time and consists of
            (exception_class, handler(case, result, exception_value)) pairs.
        :ivar force_failure: Force testtools.RunTest to fail the test after the
            test has completed.
        :cvar run_tests_with: A factory to make the ``RunTest`` to run tests with.
            Defaults to ``RunTest``.  The factory is expected to take a test case
            and an optional list of exception handlers.
        """
    
    ......
    ......
    
    def shortDescription(self):
            return self.id()
           

    原来这里没显示注释,那来改改吧,直接上代码

    def __init__(self, *args, **kwargs):
            """Construct a TestCase.
    
            :param testMethod: The name of the method to run.
            :keyword runTest: Optional class to use to execute the test. If not
                supplied ``RunTest`` is used. The instance to be used is created
                when run() is invoked, so will be fresh each time. Overrides
                ``TestCase.run_tests_with`` if given.
            """
            runTest = kwargs.pop('runTest', None)
            super(TestCase, self).__init__(*args, **kwargs)
            self._reset()
            test_method = self._get_test_method()
            if runTest is None:
                runTest = getattr(
                    test_method, '_run_test_with', self.run_tests_with)
            self.__RunTest = runTest
            self._testMethodDoc = test_method.__doc__

    这里,加入最后一行

    self._testMethodDoc = test_method.__doc__


    def shortDescription(self):
            #return self.id()
            doc = self._testMethodDoc
            return doc and doc.split("
    ")[0].strip() or None

    这里再改成这样。

    再次运行,结果如下:

    ======================================================================
    FAIL: i dont konw
    ----------------------------------------------------------------------
    _StringException: Traceback (most recent call last):
      File "test_case	esttools_learn.py", line 34, in te
    st_case_2
        assert 2 == 3
    AssertionError
    
    
    ----------------------------------------------------------------------

    很好,显示为用例的注释名了。



  • 相关阅读:
    需求采集
    <转>jmeter(十七)目录结构
    《Google软件测试之道》测试开发工程师
    聊聊学习和读书这件事
    聊聊用户
    jmeter(十六)配置元件之计数器
    《探索性软件测试》
    一个完整的性能测试流程
    js外部样式和style属性的添加移除
    jquery获取第一层li
  • 原文地址:https://www.cnblogs.com/landhu/p/9068694.html
Copyright © 2011-2022 走看看