Giter VIP home page Giter VIP logo

pytest-tutorial's Introduction

Pytest

Command

pytest

pytest test/

pytest test/test_unit.py 

pytest test/test_unit.py::test_hello

pytest test/test_class.py::TestClass

pytest test/test_class.py::TestClass::test_one

pytest test/test_unit.py --durations=10 --durations-min=1.0
pytest test/test_unit.py --durations=10 --durations-min=1.0 -vv

pytest --runxfail  # ignore xfail

pytest -m "not group1"

pytest -m group1

pytest -k unit # matching filename keyword)

pytest --report-log=./testlog.log test/ # log output to file pip install pytest-reportlog

pytest --cov=./src test/  # pytest --cov=myproj tests/

How to write test class/function

pytest test/test_unit.py
pytest test/unit_test.py
pytest test/test_class.py

Mark test functions with attributes

[pytest]
markers =
    slow: marks tests as slow (deselect with '-m "not slow"')
    serial

Here are some of the builtin markers:

  • usefixtures - use fixtures on a test function or class

  • filterwarnings - filter certain warnings of a test function

  • skip - always skip a test function

  • skipif - skip a test function if a certain condition is met

  • xfail - produce an “expected failure” outcome if a certain condition is met

  • parametrize - perform multiple calls to the same test function.

pytest test/test_marker.py
pytest test/test_marker.py -m group1
pytest test/test_marker.py -m "not group1"

scope

  • func (default)
  • cls
  • mod
  • pack
  • ...

autouse: to be implemented

pytest test/test_fixture.py::TestOne

pytest test/test_fixture.py::TestThree

pytest test/test_fixture.py::TestFour

# turn on/off auto use
pytest test/test_fixture.py::TestFive
pytest test/test_fixture.py::test_customer_records
  • setenv
  • delenv
  • setattr
  • delattr
  • setitem
  • delitem
pytest test/test_monkeypatch.py
  • mocker.patch
  • mocker.patch.object
  • mocker.patch.dict
pytest test/test_mock.py

pytest-tutorial's People

Contributors

zhijunliu96 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.