Python 单元测试以及单元测试覆盖率

2018/12/18 posted in  Python

单元测试

  1. 安装nosetest

    pip install nose
    
  2. 执行测试并输出xunit格式xml文件

    nosetest --with-xunit -v
    

    如果你想指定输出的文件名

    nosetest --with-xunit --xunit-file=xunittest.xml -v
    

测试覆盖率

  1. 安装coverage

    pip install coverage
    
  2. 测试指定的测试代码或者模块

    coverage run test.py
    

    以上操作会在当前目录下生成.coverage目录

  3. 生成xml报告或者html报告

    coverage html
    coverage xml
    

在Django 中使用nose和coverage

如果仅仅是使用coverage

coverage run manage.py test #执行django的单元测试
coverage xml #生成xml报告

如果需要同时使用nosetest和coverage

  1. 下载安装django-nose

    pip install django-nose
    
  2. 将django-nose添加到项目的setting.py文件当中

    INSTALLED_APPS = (
    ...
    'django_nose', # Append to INSTALLED_APPS
    ...
    )
    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
    NOSE_ARGS = [
    '--with-coverage',
    '--with-xunit',
    '--xunit-file=xunittest.xml'
    ]
  3. 执行单元测试

    python manage.py test
    
  4. 生成单元测试覆盖率

    coverage xml