# 在执行测试用例时,有时候有些用例是不需要执行的,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了。
#
# unittest提供了一些跳过指定用例的方法
#
# @unittest.skip(reason):强制跳转。reason是跳转原因
# @unittest.skipIf(condition, reason):condition为True的时候跳转
# @unittest.skipUnless(condition, reason):condition为False的时候跳转
# @unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目import unittest
#二、强制跳转
class Test(unittest.TestCase):@unittest.skip("不执行该条用例")def test_01(self):print('---用例01---')# print(isinstance(Test('test_01'), Iterable))# print(isinstance([Test('test_01')],Iterable))@unittest.skipIf(3>2,"3>2跳过测试")     #条件为true跳过def test_02(self):print('---用例02---')def test_03(self):print('---用例03---')@unittest.expectedFailure               #不计入测试结果def test_04(self):print(3/0)@unittest.skipUnless(2>3,"2>3跳过测试")    #条件为False跳过def test_05(self):print("---用例05---")
if __name__ == '__main__':unittest.main()#### selenium demo
# coding = utf-8
# import unittest
# import warnings
# from selenium import webdriver
# from time import sleep
# # 驱动文件路径
# driverfile_path = r'D:\coship\Test_Framework\drivers\IEDriverServer.exe'
#
# class CmsLoginTest(unittest.TestCase):
#     def setUp(self):
#         # 这行代码的作用是忽略一些告警打印
#         warnings.simplefilter("ignore", ResourceWarning)
#         self.driver = webdriver.Ie(executable_path=driverfile_path)
#         self.driver.get("http://172.21.13.83:28080/")
#
#     def tearDown(self):
#         self.driver.quit()
#
#     @unittest.skip("用户名密码都为空用例不执行")
#     def test_login1(self):
#         '''用户名、密码为空'''
#         self.driver.find_element_by_css_selector("#imageField").click()
#         error_message1 = self.driver.find_element_by_css_selector("[for='loginName']").text
#         error_message2 = self.driver.find_element_by_css_selector("[for='textfield']").text
#         self.assertEqual(error_message1, '用户名不能为空')
#         self.assertEqual(error_message2, '密码不能为空')
#
#     @unittest.skipIf(3 > 2, "3大于2,此用例不执行")
#     def test_login3(self):
#         '''用户名、密码正确'''
#         self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
#         self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("111111")
#         self.driver.find_element_by_css_selector("#imageField").click()
#         sleep(1)
#         self.driver.switch_to.frame("topFrame")
#         username = self.driver.find_element_by_css_selector("#nav_top>ul>li>a").text
#         self.assertEqual(username,"autotest")
#
#     @unittest.skipUnless(3 < 2,"2没有大于3,此用例不执行")
#     def test_login2(self):
#         '''用户名正确,密码错误'''
#         self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
#         self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
#         self.driver.find_element_by_css_selector("#imageField").click()
#         error_message = self.driver.find_element_by_css_selector(".errorMessage").text
#         self.assertEqual(error_message, '密码错误,请重新输入!')
#
#     @unittest.expectedFailure
#     def test_login4(self):
#         '''用户名不存在'''
#         self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("test007")
#         self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
#         self.driver.find_element_by_css_selector("#imageField").click()
#         error_message = self.driver.find_element_by_css_selector(".errorMessage").text
#         self.assertEqual(error_message, '用户名不存在!')
#
#     def test_login5(self):
#         '''用户名为空'''
#         self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")
#         self.driver.find_element_by_css_selector("#imageField").click()
#         error_message = self.driver.find_element_by_css_selector("[for='loginName']").text
#         self.assertEqual(error_message, '用户不存在!')
#
#     def test_login6(self):
#         '''密码为空'''
#         self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")
#         self.driver.find_element_by_css_selector("#imageField").click()
#         error_message = self.driver.find_element_by_css_selector("[for='textfield']").text
#         self.assertEqual(error_message, '密码不能为空')
#
#
# if __name__ == "__main__":
#     unittest.main(verbosity=2)#输出:
# "C:\Program Files\Python36\python.exe" D:/Git/Test_Framework/utils/cmslogin.py
# test_login1 (__main__.CmsLoginTest)
# 用户名、密码为空 ... skipped '用户名密码都为空用例不执行'
# test_login2 (__main__.CmsLoginTest)
# 用户名正确,密码错误 ... skipped '2没有大于3,此用例不执行'
# test_login3 (__main__.CmsLoginTest)
# 用户名、密码正确 ... skipped '3大于2,此用例不执行'
# test_login4 (__main__.CmsLoginTest)
# 用户名不存在 ... expected failure
# test_login5 (__main__.CmsLoginTest)
# 用户名为空 ... FAIL
# test_login6 (__main__.CmsLoginTest)
# 密码为空 ... ok
#
# ======================================================================
# FAIL: test_login5 (__main__.CmsLoginTest)
# 用户名为空
# ----------------------------------------------------------------------
# Traceback (most recent call last):
#   File "D:/Git/Test_Framework/utils/cmslogin.py", line 71, in test_login5
#     self.assertEqual(error_message, '用户不存在!')
# AssertionError: '用户名不能为空' != '用户不存在!'
# - 用户名不能为空
# + 用户不存在!
#
#
# ----------------------------------------------------------------------
# Ran 6 tests in 32.663s
#
# FAILED (failures=1, skipped=3, expected failures=1)
#
# Process finished with exit code 1

Unittest_skipe相关推荐

最新文章

  1. python中复合条件_如何用Python选取复合条件的坐标组成新的列表?
  2. 【Python】随机划分数据集并生成VOC格式列表
  3. 10、springboot之集成druid
  4. 剑网三虽然是游戏,但场面堪比电影大片,发布会会带来什么惊喜?
  5. 文件上传之Springmvc方式上传代码
  6. (1)stm32开发之标准库的介绍
  7. 新电子书:解决生产中Java应用程序错误的完整指南
  8. 不用网关或代理的单点远程办公如何实现,Aruba推出EdgeConnect Microbranch
  9. Use // eslint-disable-next-line to ignore the next line.解决办法
  10. C#封装DLL类库,调用类库
  11. Chrome 私人珍藏-AdBlock插件实现浏览器广告屏蔽,超强力
  12. 嘉明的C学习之Day8--数组
  13. HDU-4567-思维-Brilliant Programmers Show -13长沙邀请赛
  14. 转载:性格与健康(刘善人)之二
  15. 二进制安装habor
  16. SQL-聚合函数结果作为筛选条件时where与having用法的区别
  17. 国货美妆新宠“完美日记”爆发,给传统企业的数字化营销带来哪些启发?
  18. java oo_我爱oo,我爱java
  19. 阿里、京东、苏宁双十一“链”战
  20. mysql优化方面的书籍推荐_推荐几本孩子教育方面的书籍

热门文章

  1. 数据结构——树(一)
  2. 怎么用计算机函数图像处理,应用图形计算器学习函数注意“想、作、思”结合...
  3. 基于HMM的词性标注方法
  4. python中类的属性一般来说是通过类名来访问_进入大学,一开始新生都会出现人际、生活等各方面的不适应,只要积极面对,这个阶段终究会过去。( )_学小易找答案...
  5. PWM硬件触发ADC
  6. HC32F46x底层操作(时钟,IO等初始化)
  7. 实用的网络管理软件-智和网管平台
  8. linux操作系统期末考试大题,《Linux操作系统》Linux-期末考试试题-含答案.doc
  9. java面向对象期末考试试题_《面向对象程序设计——java》期末考试试题2008a卷.doc...
  10. 元宇宙,你是愿意成就这个世界,还是毁灭这个世界?