unittest用法

 
import unittest
from HTMLTestRunner import HTMLTestRunner
#txt格式输出测试报告:
suite=unittest.defaultTestLoader.discover.discover( r' D:\autotext\testcase\ ' , pattern=' text*.py ' )
with open(r' D:\autotext\report\report.txt ' , ' a '  ) as f :
  runner=unittest.TextTestRunner(stream=f,verbosity=2)
  runner.run(suite)
 
#html格式输出测试报告:
suite=unittest.defaultTestLoader.discover.discover( r' D:\autotext\testcase\ ' , pattern=' text*.py ' )
with open(r' D:\autotext\report\report.html ' , ' w '  ) as f :
  runner=unittest.TextTestRunner(stream=f,report_title='XX测试报告',descriptions=' Report  Details ' , verbosity=2, output='report')
  runner.run(suite)
 
testsuite组织用例

 

import unittest
test_dir = './'
discover = unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
if __name__ == '__main__': # 执行测试 runner = unittest.TextTestRunner() runner.run(discover)

discover()方法中参数的意思:

 

  • test_dir:需要加载的单元测试文件的路径。因为我这里 test.py文件和和各个测试用例在同一路径下,所以test_dir = './'。如果不是在同一路径下,就填写绝对路径,

  • 比如我的路径就应该是test_dir = /Users/guxuecheng/Desktop/unittest脚本

  • patten 是一个正则表达式,pattern='test*.py'是指加载所有 test 开头的.py 文件,*表示任意多个字符。

  • discover()方法会自动的根据测试目录(test_dir)匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件 suite 中,因此可以通过run()方法执行 discover。
单元测试的重要概念

1. TestCase

一个TestCase的实例就是一个测试用例。一个测试用例要包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。

2. TestSuite

对于某一个功能模块的验证可能需要多个测试用例,多个测试用例集合在一起执行验证某一个功能,这样就是一个TestSuite。通过addTest()方法将 TestCase 加载到 TestSuite()中。

3. TestRunner
TestRunner可以使用图形界面、文本界面,或返回一个特殊的值等方式来表示测试执行的结果。TextTestRunner提供的 run()方法来执行 test suite/test case。

扫描二维码关注公众号,回复: 5411358 查看本文章

4.TestFixture
一个测试用例环境的搭建和销毁就是一个 fixture。

  • unittest是Python自带的单元测试框架,我们可以用其来作为我们自动化测试框架的用例组织执行框架。
  • unittest的流程:写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。
  • 一个class继承unittest.TestCase即是一个TestCase,其中以 test 开头的方法在load时被加载为一个真正的TestCase。
  • verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告。
  • 可以通过addTest和addTests向suite中添加case或suite,可以用TestLoader的loadTestsFrom__()方法。
  • 用 setUp()、tearDown()、setUpClass()以及 tearDownClass()可以在用例执行前布置环境,以及在用例执行后清理环境
  • 我们可以通过skip,skipIf,skipUnless装饰器跳过某个case,或者用TestCase.skipTest方法。
  • 参数中加stream,可以将报告输出到文件:可以用TextTestRunner输出txt报告,以及可以用HTMLTestRunner输出html报告。

还有不明白请查看以下链接

来源
链接:https://www.jianshu.com/p/d877c855b9de

猜你喜欢

转载自www.cnblogs.com/jiaoxiaohui/p/10471311.html