Match test output against patterns stored in files
What is this
This is a pytest plugin which provides a couple of fixtures to match test output against patterns stored in files.
The plugin extends pytest with the following CLI options:
- --pm-save-patterns – to store the output to a pattern file (instead of checking);
- --pm-patterns-base-dir to specify a base directory, where to lookup pattern files.
Pattern files are stored in a base directory and additional paths based on test module name, test class name and/or test function name as following:
Note, that for non-class test functions the test-class-name part is absent.
The plugin provides expected_out and expected_err named fixture functions.
def test_foo(capfd, expected_out): print('foo') stdout, stderr = capfd.readouterr() assert stdout == expected_out
Add pm-patterns-base-dir option to pytest.ini file (and pytest section) pointing for example to test/data/expected. For the first pytest run it would fail, cuz there is no expected pattern file present. To write it one can use pytest CLI:
$ pytest --pm-save-patterns test/test_foo.py::test_foo
Review the stored pattern file and add to your VCS.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.