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