unittest

import unittest,HTMLTestRunner
class My(unittest.TestCase):
    def test_a(self):
        """这是用例备注:第一条用例"""
        self.assertEqual(1,1) #对比两个值是否相等
    def test_b(self):
        """第一条用例"""
        self.assertEqual(1,2)
if __name__ == '__main__':
    suite=unittest.TestSuite()
    # suite.addTest(unittest.makeSuite(My)) #运行类下所有的用例
    suite.addTest(My('test_a')) #单独运行某一个用例
    fw=open('1.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='h',description='描述')
    runner.run(suite)

2.setUp,tearDown ,setUpclass ,tearDownclass

import unittest
class My(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print('进入对象先运行我')
    @classmethod
    def tearDownClass(cls):
        print('所有用例运行完,再走我')
    def setUp(self):
        print('每条用例运行前先运行我')

    def tearDown(self):
        print('每条用例运行后都走一边我')
    def test_a(self):
        self.assertEqual(1,1)
if __name__ == '__main__':
    unittest.main()

3.运行多个文件内的用例

  当前我在run文件下要运行case文件夹下a和b文件里的用例

 

import unittest,HTMLTestRunner
suite=unittest.TestSuite() #产生一个空的测试集
all_case=unittest.defaultTestLoader.discover(r'D:\学习\Python\gitfile\uintest小例\case','*py') #寻找这个路径下以py结尾的文件
for case in all_case:
  suite.addTests(case)  # 给测试集中放用例
f=open('1.html','wb') #产生放在那个路径下及报个名称
runner=HTMLTestRunner.HTMLTestRunner(stream=f,title='123')
runner.run(suite)#运行测试集中的用例并产生报告

4,参数化

 

import unittest,HTMLTestRunner
from nose_parameterized import parameterized
def login(username,passwd):
   if username=='daliuliu' and passwd=='123456':
       return True
   return False

class Login(unittest.TestCase):
    #必须传二维数组,list,元组都可以
    @parameterized.expand([
        ['daliuliu','123456',True],
        ('daliuliu','',False),
        ['','',False]
    ])
    def test_login(self,username,passwd,hope):
        res=login(username,passwd)
        self.assertEqual(res,hope)

if __name__ == '__main__':
    suite=unittest.TestSuite()
    suite.addTest(unittest.makeSuite(Login))
    f=open('hh1.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=f)
    runner.run(suite)

5.关联传参

import unittest,HTMLTestRunner
def login(username,passwd):
   if username=='daliuliu' and passwd=='123456':
       return '138'
   return False
def get_sign(sign):
    if sign=='138':
        return False
    return True

class Login(unittest.TestCase):
    def login(self):
        sign= login('daliuliu','123456')
        self.assertEqual(sign,'138')
    def test_a(self):
        sign=self.login()
        res=get_sign(sign)
        self.assertEqual(res,True)
        
if __name__ == '__main__':
    suite=unittest.TestSuite()
    suite.addTest(unittest.makeSuite(Login))
    f=open('hh1.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=f)
    runner.run(suite)

 

转载于:https://www.cnblogs.com/liushuxian/p/11379297.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值