Appium 新手学 appium-unittest 框架中的断言 (python)

· 2015年05月20日 · 最后由 五棵木 回复于 2017年06月28日 · 3592 次阅读

在 unittest 单元测试框架中,TestCase 类提供了一些方法来检查并报告故障,如下图 :

  • 上面所提供的断言方法(assertRaises(), assertRaisesRegexp() 除外)接收 msg 参数,如果指定, 将体作为失败的错误信息。
1 try:
2     num = input("Enter a number:")
3     assert (num == 10), "The number is not 10!"
4 except AssertionError,msg:
5     print msg
6     print ("Sadly, num not equals to 10")
  • 在上面的程序中,运行到的 python 的异常与断言。通过 raw_input() 方法要求用户输入一个数字,通
    过 arrsert 判断用户输入的 num 是否等于 10 ; 通过 python 的 AssertionError 类型的异常来实捕获这
    个异常, msg 接收异常信息并打印, 注意, msg 所结构的异常信息是我们自定义的( "The number is not
    10!")。

    • assertEqual(first, second, msg=None)
    • 判断 first 和 second 的值是否相等,如果不相等则测试失败,msg 用于定义失败后所抛出的异 常信息。
    • assertNotEqual(first, second, msg=None)
    • 测试 first 和 second 不相等,如果相等,则测试失败。
    • assertTure(expr,msg=None)
    • assertFalse(expr,msg=None)
    • 测试 expr 为 Ture(或为 False)
    • 以下为 n python 2.7 版新增的断言方法:
    • assertIs(first, second, msg=None)
    • assertIsNot(first, second, msg=None)
    • 测试的 first 和 second 是(或 不是)相同的对象。
    • assertIsNone(expr, msg=None)
    • assertIsNotNone(expr, msg=None)
    • 测试 expr 是(或 不是)为 None
    • assertIn(first, second, msg=None)
    • assertNotIn(first, second, msg=None)
    • 测试 first 是(或不是)在 second 中。second 包含是否包含 first 。
    • assertIsInstance(obj, cls, msg=None)
    • assertNotIsInstance(obj, cls, msg=None)
    • 测试 obj 不(或 不是)cls 的一个实例。(obj 和 cls 可以是一个类或元组),要检查他们的类型使
    • 用 assertIs(type(obj), cls)。
    • 更多断言方法请参考 python unittest 文档。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

有个问题一直困扰着,就是这个断言如何进行参数话,在 unittest 中如何把 excel 里的参数放到断言中,是否可以给点建议,谢谢

蛮好~合用~

楼主你好,我现在遇到个问题,就是在我的代码中比如我 assertequal(a,b) 我这里的 a 和 b 不相等,然后我的代码就停了,下面的代码也不执行了,我记得在 assert 里面看到,如果这个 case 失败了会执行下一个 case,也就是说,如果我这个 case 第 3 行代码失败了,下面几行的就不会执行了是吗

#4 · 2016年03月03日 Author

#3 楼 @enumerate assert 不就是测试失败的话,就跳出么,这个逻辑对的啊

#4 楼 @mads 哦,那我理解了,2 个 case 第一个失败了会运行第二个 case,但不会运行第一个 case 失败行代码下面的代码,谢谢

#6 · 2016年03月03日 Author

#5 楼 @enumerate 杭州还是上海,小伙子

[该话题已被删除] 中提及了此贴 09月15日 15:08
新手学 appium-合集第一季度 中提及了此贴 11月25日 17:29

self.assertIsNone(self.dr.find_element_by_name(taskname_2),'存在发起的任务,Fail')
当 self.dr.find_element_by_name(taskname_2) 找不到时直接脚本报错,报错如下,找不到时不是刚好验证不存在,不应该是 pass 吗?

selenium.common.exceptions.NoSuchElementException: Message: An element could not be located on the page using the given search parameters.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册