parent
6f0db1d193
commit
09671eb6fc
|
@ -4,8 +4,8 @@ Changes between 1.X and 1.1.1
|
||||||
- moved dist/looponfailing from py.test core into a new
|
- moved dist/looponfailing from py.test core into a new
|
||||||
separately released pytest-xdist plugin.
|
separately released pytest-xdist plugin.
|
||||||
|
|
||||||
- new junitxml plugin: --xml=path will generate a junit style xml file
|
- new junitxml plugin: --junitxml=path will generate a junit style xml file
|
||||||
which is parseable e.g. by the hudson continous integration server.
|
which is processable e.g. by the Hudson CI system.
|
||||||
|
|
||||||
- new option: --genscript=path will generate a standalone py.test script
|
- new option: --genscript=path will generate a standalone py.test script
|
||||||
which will not need any libraries installed. thanks to Ralf Schmitt.
|
which will not need any libraries installed. thanks to Ralf Schmitt.
|
||||||
|
|
|
@ -9,7 +9,7 @@ plugins = [
|
||||||
('other testing domains, misc',
|
('other testing domains, misc',
|
||||||
'oejskit django xdist genscript'),
|
'oejskit django xdist genscript'),
|
||||||
('reporting and failure logging',
|
('reporting and failure logging',
|
||||||
'pastebin logxml xmlresult resultlog terminal',),
|
'pastebin junitxml xmlresult resultlog terminal',),
|
||||||
('other testing conventions',
|
('other testing conventions',
|
||||||
'unittest nose doctest restdoc'),
|
'unittest nose doctest restdoc'),
|
||||||
('core debugging / help functionality',
|
('core debugging / help functionality',
|
||||||
|
|
|
@ -38,7 +38,7 @@ reporting and failure logging
|
||||||
|
|
||||||
pastebin_ submit failure or test session information to a pastebin service.
|
pastebin_ submit failure or test session information to a pastebin service.
|
||||||
|
|
||||||
logxml_ logging of test results in JUnit-XML format, for use with Hudson
|
junitxml_ logging of test results in JUnit-XML format, for use with Hudson
|
||||||
|
|
||||||
xmlresult_ (external) for generating xml reports and CruiseControl integration
|
xmlresult_ (external) for generating xml reports and CruiseControl integration
|
||||||
|
|
||||||
|
|
|
@ -12,15 +12,15 @@ command line options
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|
||||||
``--xml=path``
|
``--junitxml=path``
|
||||||
create junit-xml style report file at the given path.
|
create junit-xml style report file at given path.
|
||||||
|
|
||||||
Start improving this plugin in 30 seconds
|
Start improving this plugin in 30 seconds
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
|
|
||||||
1. Download `pytest_logxml.py`_ plugin source code
|
1. Download `pytest_junitxml.py`_ plugin source code
|
||||||
2. put it somewhere as ``pytest_logxml.py`` into your import path
|
2. put it somewhere as ``pytest_junitxml.py`` into your import path
|
||||||
3. a subsequent ``py.test`` run will use your local version
|
3. a subsequent ``py.test`` run will use your local version
|
||||||
|
|
||||||
Checkout customize_, other plugins_ or `get in contact`_.
|
Checkout customize_, other plugins_ or `get in contact`_.
|
|
@ -1,4 +1,4 @@
|
||||||
.. _`pytest_logxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_logxml.py
|
.. _`helpconfig`: helpconfig.html
|
||||||
.. _`terminal`: terminal.html
|
.. _`terminal`: terminal.html
|
||||||
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_recwarn.py
|
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_recwarn.py
|
||||||
.. _`unittest`: unittest.html
|
.. _`unittest`: unittest.html
|
||||||
|
@ -20,8 +20,7 @@
|
||||||
.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_tmpdir.py
|
.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_tmpdir.py
|
||||||
.. _`pytest_figleaf.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_figleaf.py
|
.. _`pytest_figleaf.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_figleaf.py
|
||||||
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_hooklog.py
|
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_hooklog.py
|
||||||
.. _`logxml`: logxml.html
|
.. _`junitxml`: junitxml.html
|
||||||
.. _`helpconfig`: helpconfig.html
|
|
||||||
.. _`plugin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/plugin.py
|
.. _`plugin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/plugin.py
|
||||||
.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_skipping.py
|
.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_skipping.py
|
||||||
.. _`checkout the py.test development version`: ../../install.html#checkout
|
.. _`checkout the py.test development version`: ../../install.html#checkout
|
||||||
|
@ -40,6 +39,7 @@
|
||||||
.. _`monkeypatch`: monkeypatch.html
|
.. _`monkeypatch`: monkeypatch.html
|
||||||
.. _`coverage`: coverage.html
|
.. _`coverage`: coverage.html
|
||||||
.. _`resultlog`: resultlog.html
|
.. _`resultlog`: resultlog.html
|
||||||
|
.. _`pytest_junitxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_junitxml.py
|
||||||
.. _`django`: django.html
|
.. _`django`: django.html
|
||||||
.. _`xmlresult`: xmlresult.html
|
.. _`xmlresult`: xmlresult.html
|
||||||
.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_unittest.py
|
.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_unittest.py
|
||||||
|
|
|
@ -9,8 +9,8 @@ loop on failing tests, distribute test runs to CPUs and hosts.
|
||||||
The `pytest-xdist`_ plugin extends py.test with some unique
|
The `pytest-xdist`_ plugin extends py.test with some unique
|
||||||
test execution modes:
|
test execution modes:
|
||||||
|
|
||||||
* Looponfail: run your tests in a subprocess. After it finishes py.test
|
* Looponfail: run your tests repeatedly in a subprocess. After each run py.test
|
||||||
waits until a file in your project changes and then re-runs only the
|
waits until a file in your project changes and then re-runs the previously
|
||||||
failing tests. This is repeated until all tests pass after which again
|
failing tests. This is repeated until all tests pass after which again
|
||||||
a full run is performed.
|
a full run is performed.
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@ import time
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
def pytest_addoption(parser):
|
||||||
group = parser.getgroup("terminal reporting")
|
group = parser.getgroup("terminal reporting")
|
||||||
group.addoption('--xml', action="store", dest="xmlpath",
|
group.addoption('--junitxml', action="store", dest="xmlpath",
|
||||||
metavar="path", default=None,
|
metavar="path", default=None,
|
||||||
help="create junit-xml style report file at the given path.")
|
help="create junit-xml style report file at given path.")
|
||||||
|
|
||||||
def pytest_configure(config):
|
def pytest_configure(config):
|
||||||
xmlpath = config.option.xmlpath
|
xmlpath = config.option.xmlpath
|
|
@ -9,7 +9,7 @@ from py._test.outcome import Skipped
|
||||||
default_plugins = (
|
default_plugins = (
|
||||||
"default runner capture terminal mark skipping tmpdir monkeypatch "
|
"default runner capture terminal mark skipping tmpdir monkeypatch "
|
||||||
"recwarn pdb pastebin unittest helpconfig nose assertion genscript "
|
"recwarn pdb pastebin unittest helpconfig nose assertion genscript "
|
||||||
"logxml doctest").split()
|
"junitxml doctest").split()
|
||||||
|
|
||||||
def check_old_use(mod, modname):
|
def check_old_use(mod, modname):
|
||||||
clsname = modname[len('pytest_'):].capitalize() + "Plugin"
|
clsname = modname[len('pytest_'):].capitalize() + "Plugin"
|
||||||
|
|
|
@ -3,7 +3,7 @@ from xml.dom import minidom
|
||||||
|
|
||||||
def runandparse(testdir, *args):
|
def runandparse(testdir, *args):
|
||||||
resultpath = testdir.tmpdir.join("junit.xml")
|
resultpath = testdir.tmpdir.join("junit.xml")
|
||||||
result = testdir.runpytest("--xml=%s" % resultpath, *args)
|
result = testdir.runpytest("--junitxml=%s" % resultpath, *args)
|
||||||
xmldoc = minidom.parse(str(resultpath))
|
xmldoc = minidom.parse(str(resultpath))
|
||||||
return result, xmldoc
|
return result, xmldoc
|
||||||
|
|
Loading…
Reference in New Issue