zoukankan      html  css  js  c++  java
  • PyCharm上unittest 测试用例两种执行方式

    每次讲到unittest测试框架的时候,经常有同学在群里反映,为啥我的运行不是按照我往suite里添加的用例顺序执行的,为什么别人的能跑出来报告,我的就不行...

    当然,首先确认代码是OK的,如果代码没有问题,那多半就是执行方式不太对了,我们分别来看看两种执行方式。

    01

    unittest 执行方式

    这种执行方式是pycharm自带的,首先看一下下面这段测试代码:

        import unittest

    class TestCase(unittest.TestCase):

       def setUp(self):

           print("Before every test case!")

       def test_case_01(self):

           print("this is test case 1")

       def test_case_02(self):

           print("this is test case 2")

    #大家可以认为这是一个类似于

    if __name__ == "__main__":

       unittest.main()

    如果想运行这段代码,我们可以直接在PyCharm中if __name__ == "__main__": 这一句的下面击右键,然后选择 run unittest for teststudy

    这样就是调用PyCharm中的unittest插件运行了我们当前这个测试类。

    PyCharm中的unittest插件功能很强大,不仅可以运行整个测试类,还可以选择其中某一个测试用例执行,比如,我只想执行test_case_01,可以将鼠标移到test_case_01区域,然后点击右键,这样可以实现执行单独一条测试用例。


     

    或者,可以点击测试用例左边的小运行图标,都可以实现执行单条测试用例

    上面的这些执行方式虽然入口不一样,但是都是借助PyCharm的unittest插件进行运行,这种执行方式的缺点是依赖PyCharm,以及无法生成报告,如果想生成测试报告,就要考虑Python运行方式。

    02

    Python运行方式

    Python运行方式可以直接在命令行中调用。

     

    在这里,要注意,只有添加了这段代码,才能唤醒神龙,调用起Python运行方式

    if __name__ == "__main__":

    unittest.main()

    这段代码可以理解为是一个主函数,当前这个Python文件的入口。

    当然除了在命令行,我们也可以在PyCharm中添加运行方式,选择Edit Configurations

    点开之后,发现里面已经有了一些运行方式,通过名称可以看出来,这些都是unittest的运行方式。

     

    那Python的运行方式如何添加呢,我们可以点击左上角的+号,选择Python


     

    然后将我们添加的这个文件添加到script path 中

     

    接着,我们就能在右上角看到我们刚刚添加的运行方式,直接选择这个运行按钮,就可以用Python的运行方式去运行了

    如果后面要添加报告应用或者用testsuite组织用例顺序,只要在if __name__ == "__main__": 代码后面添加,然后直接用Python方式运行就可以了。

    例如:

    Python运行方式不依赖于PyCharm,不需要PyCharm启动就可以调用,便于以后直接在CMD下调用或者添加到Jenkins中。

    最后,希望本文可以帮助大家。

    作  者:Testfan  Chris

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

  • 相关阅读:
    python------面向对象介绍
    python------模块定义、导入、优化 ------->re模块
    python------模块定义、导入、优化 ------->hashlib模块
    Java过滤器Filter使用详解
    EL表达式、 jstl标签
    jsp 自定义标签中的Function函数
    JSP 自定义标签
    javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
    JSP 中EL表达式用法详解
    JavaWEB
  • 原文地址:https://www.cnblogs.com/testfan2019/p/11445599.html
Copyright © 2011-2022 走看看