CSV output for pytest.
Install using pip:
pip install pytest-csv
To enable the CSV report:
py.test --csv tests.csv
To customize the CSV delimiter/quoting characters:
py.test --csv tests.csv --csv-delimiter ';' --csv-quote-char '"'
To customize the columns:
py.test --csv tests.csv --csv-columns host,function,status,duration,parameters_as_columns
This is the reference of all available columns:
Column
Description
id
pytest test identifier
module
test module name
class
test class
function
test function name
name
test name, with arguments
file
test module file
doc
test function docstring
status
test status (passed, failed, error, skipped, xpassed or xfailed)
success
test status, as a boolean
duration
test duration, in seconds
duration_formatted
test duration, human readable
message
error message, if any
markers
test markers, as a comma-separated list
markers_with_args
test markers with their arguments, as a comma-separated list
markers_as_columns
test markers, each as a separate column
markers_args_as_columns
test markers with their arguments, each as a separate column
parameters
test parameters, as a comma-separated list
parameters_as_columns
test parameters, each as a separate column
properties
properties recorded using
record_property
, as a comma-separated listproperties_as_columns
properties recorded using
record_property
, each as a separate columnuser
current user name
host
current host (from
platform
module)system
current system name (from
platform
module)system_release
current system release info (from
platform
module)system_version
current system version info (from
platform
module)python_implementation
current python implementation (from
platform
module)python_version
current python version (from
platform
module)working_directory
current working directory
To add some data directly from a test function, enable properties_as_columns and use:
def test_01(record_property): record_property('my column 1', 42) record_property('my column 2', 'foo bar')
To define new column types, in
conftest.py
(more examples here):def pytest_csv_register_columns(columns): columns['my_simple_column'] = lambda item, report: {'my column': report.nodeid}
Please report issues here.
This software is released under the GNU General Public License v3.0, see COPYING
for details.