-
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 list |
+----------------------------+--------------------------------------------------------------------------+
| properties_as_columns
| properties recorded using record_property
, each as a separate column |
+----------------------------+--------------------------------------------------------------------------+
| user
| 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 <https://github.com/nicoulaj/pytest-csv/blob/master/pytest_csv/_hooks.py#L20>
_):
::
def pytest_csv_register_columns(columns):
columns['my_simple_column'] = lambda item, report: {'my column': report.nodeid}