add boxed example
This commit is contained in:
62
example/boxed.txt
Normal file
62
example/boxed.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
If your testing involves C or C++ libraries you might have to deal
|
||||
with crashing processes. The xdist-plugin provides the ``--boxed`` option
|
||||
to run each test in a controled subprocess. Here is a basic example::
|
||||
|
||||
# content of test_module.py
|
||||
|
||||
import pytest
|
||||
import os
|
||||
import time
|
||||
|
||||
# run test function 50 times with different argument
|
||||
@pytest.mark.parametrize("arg", range(50))
|
||||
def test_func(arg):
|
||||
time.sleep(0.05) # each tests takes a while
|
||||
if arg % 19 == 0:
|
||||
os.kill(os.getpid(), 15)
|
||||
|
||||
If you run this with::
|
||||
|
||||
$ py.test --boxed
|
||||
=========================== test session starts ============================
|
||||
platform linux2 -- Python 2.7.3 -- pytest-2.3.0.dev8
|
||||
plugins: xdist, bugzilla, cache, oejskit, cli, pep8, cov
|
||||
collecting ... collected 50 items
|
||||
|
||||
test_module.py f..................f..................f...........
|
||||
|
||||
================================= FAILURES =================================
|
||||
_______________________________ test_func[0] _______________________________
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
______________________________ test_func[19] _______________________________
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
______________________________ test_func[38] _______________________________
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
=================== 3 failed, 47 passed in 3.41 seconds ====================
|
||||
|
||||
You'll see that a couple of tests are reported as crashing, indicated
|
||||
by lower-case ``f`` and the respective failure summary. You can also use
|
||||
the xdist-provided parallelization feature to speed up your testing::
|
||||
|
||||
$ py.test --boxed -n3
|
||||
=========================== test session starts ============================
|
||||
platform linux2 -- Python 2.7.3 -- pytest-2.3.0.dev8
|
||||
plugins: xdist, bugzilla, cache, oejskit, cli, pep8, cov
|
||||
gw0 I / gw1 I / gw2 I
|
||||
gw0 [50] / gw1 [50] / gw2 [50]
|
||||
|
||||
scheduling tests via LoadScheduling
|
||||
..f...............f..................f............
|
||||
================================= FAILURES =================================
|
||||
_______________________________ test_func[0] _______________________________
|
||||
[gw0] linux2 -- Python 2.7.3 /home/hpk/venv/1/bin/python
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
______________________________ test_func[19] _______________________________
|
||||
[gw2] linux2 -- Python 2.7.3 /home/hpk/venv/1/bin/python
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
______________________________ test_func[38] _______________________________
|
||||
[gw2] linux2 -- Python 2.7.3 /home/hpk/venv/1/bin/python
|
||||
/home/hpk/tmp/doc-exec-420/test_module.py:6: running the test CRASHED with signal 15
|
||||
=================== 3 failed, 47 passed in 2.03 seconds ====================
|
||||
Reference in New Issue
Block a user