• Stars
    star
    58
  • Rank 497,847 (Top 11 %)
  • Language
    Python
  • License
    MIT License
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

extracted --boxed from pytest-xdist to ensure backward compat

pytest-forked: run each test in a forked subprocess

Warning

this is a extraction of the xdist --forked module, future maintenance beyond the bare minimum is not planned until a new maintainer is found.

This plugin does not work on Windows because there's no fork support.

  • --forked: run each test in a forked subprocess to survive SEGFAULTS or otherwise dying processes.

python version ci pre-commit black

Installation

Install the plugin with:

pip install pytest-forked

or use the package in develope/in-place mode with a checkout of the pytest-forked repository :

pip install -e .

Usage examples

If you have tests involving C or C++ libraries you might have to deal with tests crashing the process. For this case you may use the boxing options:

pytest --forked

which will run each test in a subprocess and will report if a test crashed the process. You can also combine this option with running multiple processes via pytest-xdist to speed up the test run and use your CPU cores:

pytest -n3 --forked

this would run 3 testing subprocesses in parallel which each create new forked subprocesses for each test.

You can also fork for individual tests:

@pytest.mark.forked
def test_with_leaky_state():
    run_some_monkey_patches()

This test will be unconditionally boxed, regardless of CLI flag.

More Repositories

1

pytest

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
Python
11,150
star
2

pytest-testinfra

Testinfra test your infrastructures
Python
2,306
star
3

pytest-mock

Thin-wrapper around the mock package for easier use with pytest
Python
1,725
star
4

pytest-cov

Coverage plugin for pytest.
Python
1,647
star
5

pytest-xdist

pytest plugin for distributed testing and loop-on-failures testing modes.
Python
1,318
star
6

pytest-asyncio

Asyncio support for pytest
Python
1,293
star
7

pytest-django

A Django plugin for pytest.
Python
1,286
star
8

pytest-bdd

BDD library for the py.test runner
Python
1,248
star
9

pluggy

A minimalist production ready plugin system
Python
1,136
star
10

pytest-html

Plugin for generating HTML reports for pytest results
Python
649
star
11

pyfakefs

Provides a fake file system that mocks the Python file system modules.
Python
596
star
12

pytest-randomly

🎲 Pytest plugin to randomly order tests and control random.seed
Python
573
star
13

pytest-flask

A set of pytest fixtures to test Flask applications
Python
471
star
14

pytest-qt

pytest plugin for Qt (PyQt5/PyQt6 and PySide2/PySide6) application testing
Python
376
star
15

pytest-rerunfailures

a pytest plugin that re-runs failed tests up to -n times to eliminate flakey failures
Python
351
star
16

pytest-factoryboy

factory_boy integration the pytest runner
Python
348
star
17

pytest-selenium

Plugin for running Selenium with pytest
Python
325
star
18

cookiecutter-pytest-plugin

A Cookiecutter template for pytest plugins 💻
Python
281
star
19

pytest-splinter

pytest splinter and selenium integration for anyone interested in browser interaction in tests
Python
250
star
20

pytest-describe

Describe-style plugin for the pytest framework
Python
201
star
21

pytest-timeout

Python
185
star
22

pytest-subtests

unittest subTest() support and subtests fixture
Python
177
star
23

pytest-repeat

pytest plugin for repeating test execution
Python
158
star
24

pytest-order

pytest plugin that allows to customize the test execution order
Python
145
star
25

pytest-instafail

py.test plugin to show failures instantly
Python
130
star
26

unittest2pytest

helps rewriting Python `unittest` test-cases into `pytest` test-cases
Python
125
star
27

pytest-cpp

Use pytest's runner to discover and execute C++ tests
C++
111
star
28

pytest-github-actions-annotate-failures

Pytest plugin to annotate failed tests with a workflow command for GitHub Actions
Python
109
star
29

pytest-env

pytest plugin to set environment variables in pytest.ini or pyproject.toml file
Python
103
star
30

pytest-xprocess

pytest external process plugin
Python
94
star
31

pytest-reportlog

Replacement for the --resultlog option, focused in simplicity and extensibility
Python
75
star
32

pytest-variables

Plugin for providing variables to pytest tests/fixtures
Python
73
star
33

execnet

distributed Python deployment and communication
Python
72
star
34

pytest-play

pytest plugin that let you automate actions and assertions with test metrics reporting executing plain YAML files
Python
68
star
35

pytest-messenger

Pytest-messenger report plugin for all popular messengers like: Slack, DingTalk, Telegram
Python
67
star
36

py

Python development support library (note: maintenance only)
Python
66
star
37

pytest-random-order

pytest plugin to randomise the order of tests with some control over the randomness
Python
64
star
38

pytest-print

pytest-print adds the printer fixture you can use to print messages to the user (directly to the pytest runner, not stdout)
Python
63
star
39

pytest-mimesis

Mimesis integration with the pytest test runner. This plugin provider useful fixtures based on providers from Mimesis.
Python
62
star
40

pytest-services

Collection of fixtures and utility functions to run service processes for your tests
Python
58
star
41

pytest-runner

Python
57
star
42

pytest-metadata

Plugin for accessing test session metadata
Python
55
star
43

iniconfig

Python
49
star
44

apipkg

Python
48
star
45

pytest-twisted

test twisted code with pytest
Python
45
star
46

pytest-stress

A Pytest plugin that allows you to loop tests for a user defined amount of time.
Python
40
star
47

pytest-incremental

py-test plugin: an incremental test runner
Python
40
star
48

pytest-faker

faker integration the pytest test runner
Python
38
star
49

nose2pytest

Scripts to convert Python Nose tests to PyTest
Python
35
star
50

pytest-base-url

pytest plugin for URL based tests
Python
35
star
51

pytest-cloud

Distributed tests planner plugin for pytest testing framework.
Python
35
star
52

pytest-freezer

Pytest plugin providing a fixture interface for spulec/freezegun
Python
35
star
53

plugincompat

Test execution and compatibility checks for pytest plugins
CSS
34
star
54

pytest-fixture-tools

Pytest fixture tools
Python
32
star
55

pytest-faulthandler

py.test plugin that activates the fault handler module during testing
Python
27
star
56

pytest-echo

pytest plugin to dump environment variables, package version and generic attributes.
Python
21
star
57

pytest-localserver

py.test plugin to test server connections locally. This repository was migrated from Bitbucket.
Python
19
star
58

pytest-inline

pytest-inline is a pytest plugin for writing inline tests.
Python
14
star
59

pytest-nunit

An Nunit output plugin for Pytest
Python
10
star
60

design

Graphic design for Pytest project
9
star
61

pytest-plus

pytest-plus adds new features to pytest
Python
9
star
62

pytest-bpdb

pytest plugin for dropping to bpdb on test failures
Python
6
star
63

blog.pytest.org

Repository for the official pytest blog
Python
4
star
64

pytest-tcpclient

pytest mocking of TCP clients
Python
3
star
65

meta

Used for generic pytest organization issues, stuff that can impact multiple projects.
2
star
66

pytest-talks

public pytest talks and workshops - meant to help user groups spin up talks and workshops
HTML
1
star
67

regendoc

Python
1
star
68

sprint

pytest development sprint 2024
1
star