【AutoField】 Django默认的行为就像这样 class TestModel(models.Model): id = models.AutoField(primary_key=True)...(models.Model): tid = models.AutoField() 不显示指定主键,但是又给表增加AutoField列的话就会报错 assert not cls...._meta.label AssertionError: Model myapp.TestModel can’t have more than one AutoField....补充知识:Django中models下常用Field以及字段参数 一、常见的FieldType数据库字段类型 1、AutoField:自增Field域,自动增加的一个数据库字段类型,例如id字段就可以使用该数据类型...、default:为该字段设置默认值 四、关系字段 1、to:设置要关联的表 2、to_field:设置要关联的表的字段 3、related_name:反向操作时,使用的字段名,用于代替原反向查询时的”
not cls....super(AutoIncreField, self).contribute_to_class(cls, name, **kwargs) cls....如果您修复了这个问题请留言回复下,谢谢 4.bug修复 以一种非常不优雅的方法进行了简单修复,重写了模型的save方法,在save后从新get class AutoIncreFieldFixMinxin...多对多:在某表中创建一行数据是,有一个可以多选的下拉框 例如:创建用户信息,需要为用户指定多个爱好 一对一:在某表中创建一行数据时,有一个单选的下拉框(下拉框中的内容被用过一次就消失了 例如:原有含10...# 做如下操作时,不同的symmetrical会有不同的可选字段 models.BB.objects.filter(...) # 可选字段有:code, id, m1 class BB(models.Model
旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning 关于特性将会被废弃的警告 RuntimeWarning...可疑的运行时行为(runtime behavior)的警告 SyntaxWarning 可疑的语法的警告 UserWarning 用户代码生成的警告...断言语句的关键字为:assert 基本用法:assert 条件 当条件正确时,什么也不返回;当条件错误时,抛出AssertionError In [5]: assert 9>5 # 条件正确时,什么也不返回...In [6]: assert 9<5 # 条件错误时,抛出AssertionError -----------------------------------------------------...-6-739be7e04005> in ----> 1 assert 9<5 AssertionError: 断言的错误可以自己填写,用法:assert 条件,'错误信息' In [
可以有多个except,支持使用else子句处理没有探测异常的执行代码try-finally:仅检测异常并做一些必要的清理工作。仅能有一个finally。...; traceback:异常出发时新生成的一个用于异常-正常化的跟踪记录,多用于重新引发异常。...如果condition条件满足,则assert不做任何操作;如果条件不满足,则assert作为参数实例化AssertionError并引发结果实例。 ...如果运行python时使用了-O优化选项,assert将是一个空操作,编译器不为assert语句生成代码 。...4)==[0,1,2,3] AssertionError: In [19]: assert 1==1 #条件满足,无输出 In [20]: assert
刚开始我的内心是拒绝的,我想我用unittest也能完成自动化测试,干嘛要去学pytest呢?最近看到越来越多的招聘要求会pytest框架了,也有小伙伴出去面试说会unittest框架被鄙视的。...),或者对某些预期失败的case标记成失败 支持重复执行(rerun)失败的case 支持运行由nose, unittest编写的测试case 可生成html报告 方便的和持续集成工具jenkins集成...func(3)==5 E assert 4 == 5 E + where 4 = func(3) test_sample.py:6: AssertionError ===...写个测试类 1.前面是写的一个test开头的测试函数,当用例用多个的时候,写函数就不太合适了。这时可以把多个测试用例,写到一个测试类里。...的文件目录,如果只想运行这个文件,加上-q参数,-q参数用来指定执行的文件,不指定就执行该文件夹下所有的用例 py.test -q test_class.py D:\YOYO>py.test -q test_class.py
一、python异常 1、Python异常 python运行时发生错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成...仅能有一个finally try语句的复合形式 try-except-finally 二、try语句 1、try-except 语句 定义了进行异常监控的一段代码,并且提供了处理异常的机制...条件满足,则assert不做任何操作 如果condition条件不满足,则assert使用expression作为参数实例化AssertionError并引发结果 注意: ...如果运行Python时使用了-O优化选项,则assert将是一个空操作:编译器不为assert语句生成代码 运行Python时不使用-O选项,则__debug__内置变量为True, 否则其值为...-15-a174714cc486> in () ----> 1 assert 1==2 AssertionError: In [17]: assert 1==2,"sb" ---
(IO操作),则解释器锁会自动解开,其他线程继续执行。...因此,python的多线程并不是在同时运行的,而是有先后顺序的。 多进程相当于每个进程都有了一个python解释器,所以多进程可以实现多个任务同时执行,缺点就是进程的资源开销较大。...8、简述面向对象中__new__和__init__方法的区别 __init__方法是在实例化的时候初始化参数调用的,该方法有一个参数self,指代的实例对象本身,该方法不能有返回值,用于初始化参数;... 随机小数:使用numpy库,np.random.randn(n),生成n个随机小数 0-1随机小数:random.random(),括号中不传参 import random import numpy...) print("断言成功,程序继续向下执行") assert (a<1) # # AssertionError print("断言失败,程序报错")
assert_array_less(x, y[, err_msg, verbose]) 如果两个 array_like 对象不按顺序排列,则引发 AssertionError。...返回: 无 引发: AssertionError 如果一个或多个元素的x和y之间的间距大于nulp。...verbosebool,可选 如果为 True,则冲突的值将追加到错误消息中。 strictbool,可选 如果为 True,则在数组对象的形状或数据类型不匹配时引发 AssertionError。...给定两个类似数组对象,检查形状是否相等,以及第一个对象的所有元素是否严格小于第二个对象的元素。在形状不匹配或值错误排序时引发异常。如果对象的维度为零,则形状不匹配不会引发异常。...接受可调用的消息以延迟到失败时再进行评估。 Python 内置的 assert 在执行优化模式的代码时不起作用(使用 -O 标志)- 它不会生成任何字节码。
逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者出结果需要的过程无法执行等。 默认情况下:python脚本执行过程中出现异常后,脚本执行将被终止。 ...:仅检查异常并做一些必要的清理工作 仅能有一个finally try语句的复合形式: try-except-finally 注意:try语句中的任何语句出现异常后...,则assert不做任何操作;如果condition条件不满足,则assert使用expression作为参数实例化AssertionError并引发结果实例(即生成一个自定义的断言异常对象) ...注意:如果运行python时使用了-O优化选项,则assert将是一个空操作:编译器不为assert语句生成代码 运行python时不使用-O选项,则__debug__内置变量为True...raise AssertionError, assert实现:手动触发异常。
很多框架基于 Junit4 定制; 2.2 测试用例的核心元素 测试用例的名字:特性方法名 测试用例描述与标签:注解 测试用例的容器:类或者套件 测试过程单元测试Web 自动化测试 SeleniumApp...——App 自动化测试用例管理 基类的 @BeforeClass:配置读取、配置 Capability、初始化 driver、安装 App,PageObject 初始化 集成的子类执行流程@Before...Junit4DemoChildren2Test,继承 Junit4DemoTest 再建一个测试类 SuitesTest, 写上注解 @RunWith(Suite.class), 表明这是一个测试套件,是多个测试类的一个集合...(FastGroup.class) : 指明要执行的测试分组不包含哪些 @Suite.SuiteClasses({ : 指明要执行的测试类 TestDemo.class }) @Category...: 测试结果: 仅指明 SlowGroup 组测试执行 测试结果: 仅指明不执行的组为 FastGroup 测试结果: 2.9 参数化@Paramterized 有时候我们需要传入测试数据,
很多框架基于 Junit4 定制; 2.2 测试用例的核心元素 测试用例的名字:特性方法名 测试用例描述与标签:注解 测试用例的容器:类或者套件 测试过程 单元测试 Web 自动化测试 Selenium...App 自动化测试 Appium 接口自动化测试 RestAssured 测试断言 2.3 基本 demo 运行 1)创建 maven 工程 XUnit,pom.xml 中添加 Junit 依赖; <...——App 自动化测试用例管理 基类的 @BeforeClass: 配置读取、配置 Capability、初始化 driver、安装 App,PageObject 初始化 集成的子类执行流程 @Before...Junit4DemoChildren2Test,继承 Junit4DemoTest 再建一个测试类 SuitesTest, 写上注解 @RunWith(Suite.class), 表明这是一个测试套件,是多个测试类的一个集合...(FastGroup.class) : 指明要执行的测试分组不包含哪些 @Suite.SuiteClasses({ : 指明要执行的测试类 TestDemo.class }) @Category
一.Python的运行时错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者输出结果需要的过程无法执行等...2.try语句主要两种刑事 try-except:检测和处理异常 可以有多个except 支持使用else子局处理没有探测异常的执行代码 try-finally:仅检查异常并做一些必要清理工作 仅能有一个...分句个数没有限制,但else只能有一个 2.没有异常发生时,else分句才会执行 3.没有符合的except分句时,异常会向上传递到程序的之前进入try中或者到进程的顶层。...,仅能使用字符串、类或实例 2.args:可选,以元组的形式传递异常的参数 3.traceback:可选,异常触发时新生成的一个用于异常-正常化的跟踪记录,多用于重新引发异常时。...AssertionError并引发结果实例 注意:如果运行Python时使用-O优化选项,则assert将是一个空操作,编译器不为assert语句生成代码 运行Python时不适用-O选项,则_debug
它支持测试自动化,多个测试用例共享前置(setUp)和清理(tearDown)代码,聚合多个测试用例到测试集中,并将测试和报告框架独立。...而直接使用 assert 虽然也可以达到验证被测对象是否符合预期的目的,但在用例出错时,报错信息不够丰富。...它会在用例执行前被测试框架自动调用。 测试清理方法 tearDown()[10] 用来做一些清理工作,比如断开数据库连接。它会在用例执行完成(包括失败的情况)后被测试框架自动调用。...---------- Ran 3 tests in 0.001s FAILED (failures=1) 如果想要生成 HTML 格式的报告,那么就需要额外借助第三方库(如 HtmlTestRunner...在安装好第三方库后,你不能直接使用 python -m unittest 加上类似 --html report.html 的方式来生成 HTML 报告,而是需要自行编写少量代码来运行测试用例进而得到 HTML
OverflowWarning 旧的关于自动提升为长整型(long)的警告 PendingDeprecationWarning 关于特性将会被废弃的警告 RuntimeWarning...可疑的运行时行为(runtime behavior)的警告 SyntaxWarning 可疑的语法的警告 UserWarning 用户代码生成的警告 2.捕获异常,处理异常 只有将对应的异常类型捕获才能进行异常的处理...catch 也可以在代码中添加多个except语句来捕获不同种类型的异常,执行相应不同的操作 3.主动抛出异常 异常的抛出可以手动添加 try: raise Exception("我自己抛的")...') except myException as e: print(e) 5.断言 断言assert用于判断某个条件是否成立,如果不成立则抛出AssertionError异常,该异常可以捕获...assert 条件 #相当于 if not 条件 : raise AssertionError() assert 条件,"描述" #相当于 if not 条件 : raise AssertionError
'foo'.upper() == 'FOO1' E AssertionError: assert 'FOO' == 'FOO1' E - FOO E + FOO1...4.2 共享 在 pytest 中,同一个测试夹具可被多个测试文件中的多个测试用例共享。...eval(test_input) == expected E AssertionError: assert 54 == 42 E + where 54 = eval('6*...我们不妨罗列一个横向对比表,来总结下这些单元测试框架的异同: unittest nose nose2 pytest 自动发现用例 ✔ ✔ ✔ ✔ 指定(各级别)用例执行 ✔ ✔ ✔ ✔ 支持 assert...References [1] assert: https://docs.pytest.org/en/latest/assert.html [2] 自动发现: https://docs.pytest.org
运行pytest可以指定目录和文件,如果不指定,pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。...我们把pytest搜索测试文件和测试用例的过程称为测试搜索(test discovery)。只要遵循pytest的命名规则,pytest就能自动搜索所有待执行的测试用例。...所有的包必须要有init.py文件(在使用各种编辑器时会自动生成) 1、测试文件命名规则,test_xxx.py或xxx_test.py 2、方法、测试函数命名规则,test_xxx 3、测试类命名规则...,Testxxx,并且不能带有 init 方法 Pytest参数选项在脚本中和命令行用法详解(一) -k选项 -K EXPRESSION 使用表达式指定某个关键字的测试用例,如果某测试名是唯一的或多个测试名的前缀或后缀相同...pytest.main(['-v','-m','关键字']) 关键字等于类装饰器或函装饰器@pytest.mark.标记名,里的标记名,多个关键字之间用and、or、not连接 测试代码目录: ?
在之前的几篇文章中,你已经看到过异常。当程序运行错误是出现,比如不正确的调用和代码不规范等。当你的程序出现意外情况是就会发生异常并终止运行。...try 语句可以拥有多个 except 定义语句来处理异常。多个异常也可以使用一个 except 块来捕捉。 try: var = 5 print(var + "string!")...print(1) assert 1 + 2 == 3 print("Yes") assert 1 + 1 == 0 print("Yes") 运行结果: >>> 1 Yes AssertionError...= 2 print(2) assert True print(3) assert False print(4) assert 1 + 1 == 2 print(5) 运行结果: >>> 1 2 3 AssertionError...zero >>> AssertionError 异常可以像任何其他异常一样使用 try/except 语句被捕捉和处理,如果程序不处理,这种类型的异常将终止程序的运行。
Assertion 断言是一种调试程序的方式,可以理解为高级的异常,其常与测试类并用,使用assert关键字来实现断言。...} // 表达式为false,发生断言并由消息提示 Exception in thread "main" java.lang.AssertionError: str不等于Hello at Assert.main...String[] args) { Foo f = new Foo(); f.add(1, 1); f.sub(3, 1); } } 但是类中只能有一个...IDE中编写并运行JUnit测试 2.1 编写测试类 自动生成的目录结构,默认测试类以Test结尾,且在测试的方法上加上注解@Test,这时断言就出现作用了,使用断言能知道报错的具体内容。...不建议去掉@Test注解,这样就不知道该方法是个测试方法了 3 补充 3.1 Timeout @Test(timeout = 1000) //毫秒为单位 public void TimeOut(){
他的特点如下: •简单灵活,容易上手•支持参数化•能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)•pytest...具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(...pytest 运行 命名规则 对于单个测试方法(函数)来说 必须以test开头 对于测试类来说 以Test开头 ,且不能有__init__()方法 对于测试文件来说,必须满足test_ 开头 或 _test.py...结尾 运行方式 现有测试文件 test_demo.py ,内容如下: import pytest def test_01(func): print('test_01') assert...0 E assert 0 test_1.py:17: AssertionError =========================== short test summary info
return retval 当我们提供的safe_float()参数给的不恰当时,虽然只有一条捕获语句,但可以获得如下信息: >>> safe_float('xyz') 'could not convert...) raise exclass()同上,除了现在不是类;通过函数调用操作符作用于类名生成一个新的exclass实例,同样也没有异常参数 raise exclass,args同上,但同时提供的异常参数args...assert range(3) == [0, 1, 2] AssertionError异常和其他异常一样可以用try-except语句块捕捉,如果没有捕捉,它将终止程序运行而且提供一个如下的traceback...用try-except语句捕获AssertionError异常: >>> try: ... assert 1 == 0, 'One does not equal zero silly!'...例: def assert(expr, args=None): if __debug__ and not expr: raise AssertionError,args 10.8 标准异常: 表
领取专属 10元无门槛券
手把手带您无忧上云