I am testing several versions of a component using Pytest. Some tests can run on all versions, some are version specific. For example
tests
|
|-- version1_tests
| |-- test_feature_1_1.py
| |-- test_feature_1_2.py
| |-- test_feature_1_n.py
|
|-- version2_tests
| |-- test_feature_2_1.py
| |-- test_feature_2_2.py
| |-- test_feature_2_n.py
|
|-- common_tests
| |-- test_feature_common_1.py
| |-- test_feature_common_2.py
| |-- test_feature_common_n.py
I would like to mark my tests such that I can select if I want to test Version 1 (version1_tests + common_tests) or Version 2 (version2_tests + common_tests) from the command line.
The way I am currently doing this is for each test module, I add a pytest marker and then specify the marker from the command line. For example, in test_feature_1_1.py:
import pytest
pytestmark = pytest.mark.version1
class TestSpecificFeature(object):
...
And then to run: python -m pytest -m "common and version1"
This works fine, but I have to manually add the marker to every module, which is tedious because there are actually dozens (not 3 like in the example).
We used to use Robot Framework, where it was trivial to "mark" an entire folder by adding tags into the __init__.robot files. Is there any equivalent way to do this in Pytest, or is marking each module the best I can do?
Aucun commentaire:
Enregistrer un commentaire