pytest是一款简单的测试库,方便对于自己的代码进行单元测试,简单的学习使用了一下。
安装
- pytest-django安装
$ pip install pytest-django
运行
- 建立测试文件
# coding=utf-8
"""
test_1.py
"""
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert x == "hi"
- 执行
$ pytest test_1.py
- 结果
tests_1.py .F [100%]
================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________
self = <tests.tests_1.TestClass object at 0x04352690>
def test_two(self):
x = "hello"
> assert x == "hi"
E AssertionError: assert 'hello' == 'hi'
E - hello
E + hi
tests_1.py:11: AssertionError
===================== 1 failed, 1 passed in 0.43 seconds ======================
就这是么容易上手,就可以执行测试单元了
django项目配置
对于django项目,很多地方可能需要引入DJANGO_SETTINGS_MODULE,这个该如何测试,pytest也提供了简单的方法,这里选择了最方便的配置文件.
- 建立配置文件
在django项目根目录下,创建pytest.ini文件
[pytest]
# 根据自己项目实际配置文件填充
DJANGO_SETTINGS_MODULE=myproject.settings.development
# 所有以test_开头的文件,在单独运行pytest之时都会被执行
python_files=tests_*.py
# 此项配置python路径,若app在当前目录,可忽略,若app均在指定的目录之下,例如apps,这里指定app文件目录
python_paths=apps
demo项目目录结构如下:
├─apps
│ ├─app_polls
│ │ ├─migrations
├─configs
├─doc
│ └─source
├─myproject
│ ├─settings
├─requirements
├─static
├─templates
└─tests
- 执行pytest命令
$ pytest
此时,pytest将会遍历当前项目下以 pytest_
开头的单元测试文件
若要单独测试某个文件,可直接指定该文件
$ pytest test_xxx.py
网友评论