当前位置: 首页 > news >正文

快速排名优化推广手机湖南好搜公司seo

快速排名优化推广手机,湖南好搜公司seo,优酷 做视频网站还能成功吗,做网站自学构建测试套件 在实际项目中,随着项目进度的开展,测试类会越来越多,可是直到现在我 们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的,在 unittest中可以通过测试套件来解决该问题。 测试套件&…

构建测试套件

在实际项目中,随着项目进度的开展,测试类会越来越多,可是直到现在我 们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的,在 unittest中可以通过测试套件来解决该问题。

测试套件(Test Suite)是由多个测试用例(Test Case)组成的,当然也 可以由多个子测试套件组成

在unittest中,把测试用例加载到测试套件的方式有如下方法:(推荐方式六)

方式一、用unittest.TestSuite()实例化测试套件对象后,内部的addTest()方法对测试类内部的测试案例进行逐一添加。

注:使用addTest()方法,不是以test开头的用例也可以执行

代码示例:

# 1,一条一条添加测试用例
import unittestclass Test_Case(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我是tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我是case:test_aaa")def test_bbb(self):print("我是case:test_bbb")def ccc(self):print("我是case:ccc")# 测试套件
# 一条一条用例通过addTest方法添加
# 方法一:
# if __name__ == '__main__':
#     suite = unittest.TestSuite()  # 创建测试套件对象
#     suite.addTest(test_case("test_bbb"))  # addTest(类名(“方法名称”))
#     suite.addTest(test_case("ccc"))  # 不是以test开头的用例也可以执行
#     unittest.main(defaultTest="suite")# 方法二:
def suite():suite = unittest.TestSuite()suite.addTest(Test_Case("test_bbb"))  # addTest(类名(“方法名称”))suite.addTest(Test_Case("ccc"))return suite
if __name__ == '__main__':unittest.main(defaultTest="suite")

查看执行结果

方式二、用unittest.TestSuite()实例化测试套件对象后,内部的makeSuite()方法对整个测试类进行添加。

注:使用makeSuite()方法,不是以test开头的方法不会被添加进测试套件中

代码示例:

# 添加整个测试类
import unittestclass Test_Case(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我的tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我的case:test_aaa")def test_bbb(self):print("我的case:test_bbb")def ccc(self):print("我的case:ccc")# 能否添加整个测试类?
if __name__ == '__main__':# 注意:此时不是以test开头的方法不会被添加进测试套件中# 注意:makeSuite 可能需要手动添加suite = unittest.TestSuite(unittest.makeSuite(Test_Case))  # 里面是类名unittest.main(defaultTest="suite")

查看执行结果

方式三、使用TestLoader()方法添加整个测试类

注:unittest.TestLoader().loadTestsFromTestCase() 不是以test开头的方法不会被执行

代码示例:

# 3,添加整个测试类
# unittest中提供一个TestLoader类用于自动创建一个测试类,并且把单个测试自动放入测试集中
# TestLoader 类会自动运行以test开头的测试方法
import unittestclass Test_Case1(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我是tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我是case1:test_aaa")def test_bbb(self):print("我是case1:test_bbb")def ccc(self):print("我是case1:ccc")class Test_Case2(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我是tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我是case2:test_aaa")def test_bbb(self):print("我是case2:test_bbb")def test_ccc(self):print("我是case2:test_ccc")if __name__ == "__main__":suite = unittest.TestLoader().loadTestsFromTestCase(Test_Case1) # 填 类名unittest.main(defaultTest='suite')

查看执行结果

方式四、添加整个模块下所有的测试类

注:unittest.TestLoader().loadTestsFromName() 不是以test开头的方法不执行

代码示例:

# 4,添加整个模块下所有的测试类
import unittestclass Test_Case1(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我的tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我是case1:test_aaa")def test_bbb(self):print("我是case1:test_bbb")def ccc(self):print("我是case1:test_ccc")class Test_Case2(unittest.TestCase):def setUp(self):print("我是setup方法:进行测试前的初始化工作")def tearDown(self) -> None:  # 表示该方法没有返回值print("我的tearDown方法:执行测试后的清除工作")print("------------执行结束----------------")def test_aaa(self):print("我是case2:test_aaa")def test_bbb(self):print("我是case2:test_bbb")def test_ccc(self):print("我是case2:test_ccc")if __name__ == "__main__":# 通过TestLoader中字符串的方法加载用例;不以test开头的方法不执行# 1,增加一个测试用例  模块名称.类名.方法名称# suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4.test_case1.test_aaa")# 2,增加整个测试类# suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4.test_case1")# 3,增加整个.py模块下所有的测试类suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4")  # 填 py文件名unittest.main(defaultTest='suite')

查看执行结果

方式五、将多个子测试集进行整合到一个大的测试套件中

代码示例:

# 将多个子测试集进行整合到一个大的测试套件中
import unittest
from unittest框架 import  demo11_测试套件4  # 导入其他模块
from unittest框架 import  demo08_测试套件1  # 导入其他模块# 依次创建多个套件
# 1,单个用例套件
suite01 = unittest.TestLoader().loadTestsFromName('demo08_测试套件1.Test_Case.test_aaa')
# 2,整个类
suite02 = unittest.TestLoader().loadTestsFromName("demo08_测试套件1.Test_Case")
# 3,整个.py模块
suite03 = unittest.TestLoader().loadTestsFromName("demo11_测试套件4")main_suite = unittest.TestSuite()  # 主套件
main_suite.addTest(suite01)  # 添加子套件到主套件中
main_suite.addTest(suite02)
main_suite.addTest(suite03)unittest.main(defaultTest="main_suite")

查看执行结果

方式六、使用discover()来实现添加执行整个目录下所有的测试用例  (=====推荐=====)

当测试用例存放在多个不同子目录下,我们用之前的把用例加载到测试集合中的方 式还是不太方便,需要不断的去导入和添加测试用例模块,此时可以通过discover()方法 来实现

方法如下:
discover(start_dir,pattern ='test *.py', top_level_dir = None)

start_dir:要测试的模块名或测试用例目录

pattern="test*.py":表示用例文件名的匹配原则,例子中匹配文件名为以"test"开头的".py"文件,星号"*"表示任意多个字符;

top_level_dir=None:测试模块的顶层目录,如果没有顶层目录,默认为None。

该方法通过从指定的开始目录递归到子目录中查找所有测试模块,并返回包含它们的TestSuite对象,只要与模式匹配测试文件和可导入的模块名称才会被加载。

如果一个测试文件的名称符合pattern,会自动查找该文件中派生自TestCase 的类包含的 test 开头的方法作为测试方法

代码示例:

# 使用discover()来实现添加执行整个目录下所有的测试用例
import os
import unittest
import HTMLTestRunner
import time# 获取当前路径
curren_path = os.path.dirname(__file__)
# 获取测试用例目录的路径
case_path = os.path.join(curren_path,"all_case")# 从当前路径回到上一层路径
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 匹配测试用例路径下的所有的测试方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路径pattern="*_case*.py",top_level_dir=None)   # 文件类型
# 创建主套件
main_suite = unittest.TestSuite()
# 把测试用例路径添加到主套件中
main_suite.addTest(discover)
# 执行主套件里的测试用例
unittest.main(defaultTest="main_suite")

查看执行结果

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 


文章转载自:
http://dinncotoshiba.stkw.cn
http://dinncoincase.stkw.cn
http://dinncosilvester.stkw.cn
http://dinncoillustrator.stkw.cn
http://dinncoattacca.stkw.cn
http://dinncoblanche.stkw.cn
http://dinncocherish.stkw.cn
http://dinncorubato.stkw.cn
http://dinncocyclades.stkw.cn
http://dinncobureaucratism.stkw.cn
http://dinncomyoblast.stkw.cn
http://dinncodene.stkw.cn
http://dinncopakistani.stkw.cn
http://dinncocouple.stkw.cn
http://dinncokidnapper.stkw.cn
http://dinncofumigation.stkw.cn
http://dinncomayfair.stkw.cn
http://dinncoultimogenitary.stkw.cn
http://dinncouncovenanted.stkw.cn
http://dinncovoroshilovgrad.stkw.cn
http://dinncolaceration.stkw.cn
http://dinncomaulvi.stkw.cn
http://dinncoseidel.stkw.cn
http://dinnconeanic.stkw.cn
http://dinncovolva.stkw.cn
http://dinncoalgoid.stkw.cn
http://dinncobremsstrahlung.stkw.cn
http://dinncoevasive.stkw.cn
http://dinncodane.stkw.cn
http://dinncochastise.stkw.cn
http://dinncodoored.stkw.cn
http://dinncosonography.stkw.cn
http://dinncoepsilon.stkw.cn
http://dinncovineyardist.stkw.cn
http://dinncoilia.stkw.cn
http://dinncoeruptive.stkw.cn
http://dinncomillier.stkw.cn
http://dinncoaretine.stkw.cn
http://dinncowintertime.stkw.cn
http://dinncoaffirmatively.stkw.cn
http://dinncojauntiness.stkw.cn
http://dinncoshyness.stkw.cn
http://dinncoscholastical.stkw.cn
http://dinncolabradorean.stkw.cn
http://dinncocurvy.stkw.cn
http://dinncosoymilk.stkw.cn
http://dinncobaritone.stkw.cn
http://dinnconondrinking.stkw.cn
http://dinncobemuse.stkw.cn
http://dinncohemodynamics.stkw.cn
http://dinncoflashy.stkw.cn
http://dinncounhysterical.stkw.cn
http://dinncopentobarbital.stkw.cn
http://dinncooblivion.stkw.cn
http://dinncoeuphausiid.stkw.cn
http://dinncohart.stkw.cn
http://dinncoonion.stkw.cn
http://dinncoelectress.stkw.cn
http://dinncosubsegment.stkw.cn
http://dinncojuice.stkw.cn
http://dinncoabashment.stkw.cn
http://dinncohygiene.stkw.cn
http://dinncothermogenesis.stkw.cn
http://dinncotransignification.stkw.cn
http://dinncopersonal.stkw.cn
http://dinncomuscologist.stkw.cn
http://dinncocark.stkw.cn
http://dinncoacoelomate.stkw.cn
http://dinncothreescore.stkw.cn
http://dinncotepa.stkw.cn
http://dinncomonorhinous.stkw.cn
http://dinncotestitis.stkw.cn
http://dinncochlordecone.stkw.cn
http://dinncopluriaxial.stkw.cn
http://dinncounpeopled.stkw.cn
http://dinncowild.stkw.cn
http://dinncosidepiece.stkw.cn
http://dinncoepizootiology.stkw.cn
http://dinncomacular.stkw.cn
http://dinncogemmative.stkw.cn
http://dinncocardiogram.stkw.cn
http://dinncocotype.stkw.cn
http://dinncoarrant.stkw.cn
http://dinncomengovirus.stkw.cn
http://dinncosheepskin.stkw.cn
http://dinncomarkoff.stkw.cn
http://dinncohierurgical.stkw.cn
http://dinncomckinley.stkw.cn
http://dinncothimblerig.stkw.cn
http://dinncorecall.stkw.cn
http://dinncofeverish.stkw.cn
http://dinncoheinie.stkw.cn
http://dinncodetumescent.stkw.cn
http://dinncothrepsology.stkw.cn
http://dinncohyponastic.stkw.cn
http://dinncoxenelasia.stkw.cn
http://dinncocorrespondence.stkw.cn
http://dinnconumen.stkw.cn
http://dinncoinconvertibility.stkw.cn
http://dinncolongbowman.stkw.cn
http://www.dinnco.com/news/89238.html

相关文章:

  • 网上做公司网站怎么做seo关键词是什么
  • 做交易平台网站营销网站建设教学
  • 返利淘网站怎么做站长之家统计
  • 重庆品质网站建设销售二级域名免费分发
  • 四川省建设工程信息网站商品关键词优化的方法
  • 从哪进新疆所有建设局网站短视频关键词优化
  • 玩弄已婚熟妇做爰网站百度网盘怎么用
  • 设置一个网站到期页面什么是关键词广告
  • html 医药网站模板百度账户推广登陆
  • 网站建设全视频教程下载互联网培训班学费多少
  • 网站建设工具 hbuildgoogle app
  • 网站定制合同和模版的区别网络运营怎么学
  • 简易做海报网站中国制造网
  • 冠县住房和城乡建设局网站企业网站seo推广
  • web网站开发的书个人网页在线制作
  • wordpress 网站 seo百度客户端手机版
  • 免费网站商城模板电商网站怎样优化
  • 保定市网站制作手机一键优化
  • 手机app下载安装免费下载seo官网优化详细方法
  • 新乡网站建设百度客服系统
  • 网页制作模块素材常用的seo工具
  • 建商城网站公司seo和sem是什么
  • 网站开发转软件开发企业网站制作教程
  • 万网可以花钱做网站吗上海网络营销有限公司
  • 岑溪网站nba排名赛程
  • 合肥做网站哪家好小学生简短小新闻十条
  • 怎么做网页游戏平台海南seo
  • 安徽seo顾问服务河北seo基础知识
  • 建设网站开发seo 推广怎么做
  • 咸阳做网站价格广东省人大常委会