Selenium WebDriver 3.0 基于Python3.7 批量执行测试模块

参考图书

鉴于书中很多代码在运行时有错误
在这里记录一下,顺便保存代码
7.2.9 批量执行测试模块
文件名Calc.py

#encoding=utf-8
class Calc:
    def __add__(self, x,y,*d):
        result =x+y
        for i in d:
            result+=i
            return result
        def __mul__(self, a,b):
            return a*b

文件名testCalc.py

#encoding =utf-8
import unittest
from Calc import Calc
class MyTest(unittest.TestCase):
    c=None
    @classmethod
    def setUpClass(cls):
        print ("单元测试前,创建Calc的实例")
        cls.c=Calc()
    def test__add(self):
        print ("run add()")
        self.assertEqual(MyTest.c.__add__(1,2,12),15,'test add fail')


文件名testFact.py

#emcoding=utf-8
import  unittest
from Calc import Calc
from functools import reduce
class MyTestCase(unittest.TestCase):
    def setUp(self):
        self.num=5
    def testFactorial(self):
        seq=range(1,self.num+1)
        res=reduce(lambda x,y:x*y,seq)
        self.assertEqual(res,120,"断言阶乘结果错误")

文件名testSecSum.py

#encoing =utf-8
import unittest
class MyTestCase(unittest.TestCase):
    def testEqual(self):
        seq=range(11)
        self.assertEqual(sum(seq),55,"断言列表之和结果错误")

文件名run.py

#encoding =utf-8
import unittest
if __name__=='__main__':
    testSuite=unittest.TestLoader().discover('.')
    unittest.TextTestRunner(verbosity=2).run(testSuite)

7.2.10常用断言方法

#encoding=utf-8
import unittest
import random
class MyClass(object):
    @classmethod
    def sum(cls,a,b):
        return a+b
    @classmethod
    def div(cls,a,b):
        return a/b
    @classmethod
    def return_None(cls):
        return None
class MyTest(unittest.TestCase):
    def test_assertEqual(self):
        try:
            a,b=1,2
            sum=13
            self.assertEqual(a+b,sum,'断言失败,%s+%s!=%s'%(a,b,sum))
        except AssertionError as e:
            print(e)
    def test_asserNotEqual(self):
        try:
            a,b=5,2
            res=3
            self.assertNotEqual(a-b,res,'断言失败,%s-%s=%s'%(a,b,res))
        except AssertionError as e:
            print(e)
    def test_assertTrue(self):
        try:
            self.assertTrue(1==1,"表达式为假")
        except AssertionError as e:
            print(e)
    def test_assertFalse(self):
        try:
            self.assertFalse(3==3,"表达式为假")
        except AssertionError as e:
            print(e)
    def test_assertIs(self):
        try:
            a=12
            b=a
            self.assertIs(a, b, "%s与%s不属于同一对象" % (a, b))
        except AssertionError as e:
            print(e)
    def test_assertIsNot(self):
        try:
            a=12
            b="test"
            self.assertIsNot(a,b,"%s与%s属于同一对象"%(a,b))
        except AssertionError as e:
            print(e)
    def test_assertIsNone(self):
        try:
            result=MyClass.return_None()
            self.assertIsNone(result,"not is None")
        except AssertionError as e:
            print(e)
    def test_assertIsNotNone(self):
        try:
            result=MyClass.sum(2,5)
            self.assertIsNotNone(result,"is None")
        except AssertionError as e:
            print(e)
    def test_assertIn(self):
        try:
            strA="this is a test"
            strB="is"
            self.assertIn(strB,strA,"%s不包含在%s中"%(strB,strA))
        except AssertionError as e:
            print(e)
    def test_assertNotIn(self):
        try:
            strA = "this is a test"
            strB = "seleuinm"
            self.assertIn(strB, strA, "%s包含在%s中" % (strB, strA))
        except AssertionError as e:
            print(e)
    def test_assertIsInstance(self):
        try:
            x=MyClass
            y=object
            self.assertIsInstance(x,y,"%s的类型不是%s"%(x,y))
        except AssertionError as e:
            print(e)
    def test_assertNotIsInstance(self):
        try:
            a=123
            b=str
            self.assertNotIsInstance(a,b,"%s的类型是%s"%(a,b))
        except AssertionError as e:
            print(e)
    def test_assertRaises(self):
            with self.assertRaises(ValueError)as cm:
                random.sample([1,2,3,4,5],"j")
            print("---"),cm.exception
            try:
                self.assertRaises(ZeroDivisionError,MyClass.div,3,0)
            except ZeroDivisionError as e:
                print(e)
    def test_assertRaisesRegexp(self):
        with self.assertRaisesRegex(ValueError,'literal')as ar:
            int("xyz")
        print ("ar.exception")
        print ("ar.exception_regexp")
        try:
            self.assertRaisesRegex(ValueError,"invalid literal for.*XYZ$",int,'XZY')
        except AssertionError as e:
                print(e)
if __name__=='__main__':
	unittest.main()

其中
def test_assertRaises(self):
with self.assertRaises(ValueError)as cm:
random.sample([1,2,3,4,5],“j”)
print("—"),cm.exception
try:
self.assertRaises(ZeroDivisionError,MyClass.div,3,0)
except ZeroDivisionError as e:
print(e)

出错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值