[TIP] Tipp: Ordering Test Files
Ned Batchelder
ned at nedbatchelder.com
Tue Oct 9 09:31:12 PDT 2018
Can you say more about why you want the tests to run in a particular
order? Often once the test suite grows large, pytest-xdist enters the
picture, and there isn't a single stream of tests to order anyway.
--Ned.
On 10/9/18 11:57 AM, Daniel Knüttel wrote:
> Hi testers,
>
> this is something I came across several times now and it really helped
> me and my colleagues.
>
> Pytest executes the tests is alphanumeric order. This can be used to
> order the tests in a meaningful order (often it is reasonable to
> execute the tests that way).
>
> I suggest the following naming scheme (adapted from the POSIX
> configuration file naming scheme):
>
> test_<XXX>_<name>.py
>
> where ``<XXX>`` is an integer value ranging from ``000`` to ``999`` and
> ``<name>`` is the name you would usually give your test. I usually
> associate the second digit with a module.
>
> Examples:
>
> test_000_io_block_buffer.py
> test_001_io_block_read.py
> test_002_io_block_write.py
> test_010_bootsector.py
>
> Here is a real life example:
>
> ============================= test session starts ==============================
> platform linux -- Python 3.5.3, pytest-3.4.0, py-1.5.2, pluggy-0.6.0 -- /usr/bin/python3
> cachedir: .pytest_cache
> rootdir: /home/daniel/informatik/c/bytecode_interpreter/assembler, inifile:
> collected 12 items
>
> test/test_010_filecontext.py::test_getc_ungetc PASSED [ 8%]
> test/test_011_tokenize.py::test_tokenize_1 PASSED [ 16%]
> test/test_011_tokenize.py::test_tokenize_2 PASSED [ 25%]
> test/test_011_tokenize.py::test_tokenize_3 PASSED [ 33%]
> test/test_011_tokenize.py::test_tokenize_4 PASSED [ 41%]
> test/test_012_opcodes.py::test_make_opcodes PASSED [ 50%]
> test/test_013_util.py::test_can_be_mark PASSED [ 58%]
> test/test_013_util.py::test_can_convert_to_int PASSED [ 66%]
> test/test_013_util.py::test_autoint PASSED [ 75%]
> test/test_020_basic_parsing.py::test_commands PASSED [ 83%]
> test/test_020_basic_parsing.py::test_mark PASSED [ 91%]
> test/test_020_basic_parsing.py::test_set_directive PASSED [100%]
>
> ========================== 12 passed in 0.02 seconds ===========================
>
> Let me know your thoughts on this naming scheme.
>
More information about the testing-in-python
mailing list