四十Django单元测试:PGSQL数据库配置常用测试工具DB冲突方案和代码覆盖率实战
Posted SteveRocket
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四十Django单元测试:PGSQL数据库配置常用测试工具DB冲突方案和代码覆盖率实战相关的知识,希望对你有一定的参考价值。
单元测试数据库配置
默认测试数据库的名称是将 settings.py 文件中 DATABASES 变量配置的 NAME 值前面加上 test_。
############################################################ PostgreSQL
DATABASES =
\'default\':
\'ENGINE\': \'django.db.backends.postgresql_psycopg2\', # 数据库引擎
\'NAME\': \'steverocket\', # 数据库名,Django不会帮你创建,需要自己进入数据库创建。
\'USER\': \'postgres\', # 设置的数据库用户名
\'PASSWORD\': \'123456\', # 设置的密码
\'HOST\': \'localhost\', # 本地主机或数据库服务器的ip
\'PORT\': \'5432\', # 数据库使用的端口
# 设置持久化连接时间
# 如果没有持久化连接,每个请求都会与数据库创建一个连接,直到请求结束关闭连接。每次建立和关闭连接也需要花费一些时间
\'CONN_MAX_AGE\': 60, # 60秒 不宜设置过大。当并发请求数量很高时,
Django单元测试中Fixtures用法
在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。
基础配置
- 在settings.py 中配置如下内容:
FIXTURE_DIRS = ('/path/to/api/fixtures/',)
- 在要测试的app中,增加目录
fixtures
- 在新增的
fixtures
目录下,新建文件myapp.json
,文件名自己定,后缀必须是.json
。
配置myapp.json
文件中内容格式如下,实际使用时,要删除掉实际情况,使用数据,并删除掉注释,如果需要多条数据,可以多写几个{}的内容:
[ {
"model": "myapp.user", # 数据库名
"pk": "a864340d850f484bb89ea2981047bc5e", # 要导入的数据
"fields": { # 要导入的字段,字段名跟数据库(models)内的字段一样,值,根据实际需要设置
"username": "zhangsan",
"user_num": "000",
"zh_name": "张三",
"mobile": "18712345678",
"mail": "zhangsan@abc.com",
"is_deleted": false,
"create_time": "2013-01-16",
"update_time": "2013-01-16"
}
},
]
配置tests.py
class Test_user_name(TestCase):
'''测试人员名称是否正常'''
fixtures = ['myapp.json'] # 在这里选择你要导入要测试的用户数据
def test_user_name(self):
user = User.objects.get(username='zhangsan')
self.assertEqual(user.name, "zhangsan")
下边就可以运行你的单元测试了
提醒:
如果你配置了测试的Models 的Signals,这部分的代码也会被执行
本文原创于BigYoung小站,欢迎大家访问。
以上是关于四十Django单元测试:PGSQL数据库配置常用测试工具DB冲突方案和代码覆盖率实战的主要内容,如果未能解决你的问题,请参考以下文章
JPA hibernate spring repository pgsql java 工程:sql文件导入数据,测试数据