Arjuna 1.0.0
This is the first production ready of Arjuna. Following are the changes since last release:
- New CLI switches -ip, -ep for package based selection added.
- Support for ir (inclusion rules) and er (exclusion rules)
- Exclusion rules are evaluated. If a test function meets any of the rules, it is removed from collection.
- If the test function meeting any of the inclusion rules, it is included in the collection.
- --rule changed to -ir and -er to add provision for include and exclude rules via CLI. Used for magic group creation.
- ir and er sections can be added in a group definition in groups.yaml file.
- Internally, the ip/ep/im/em/it/et are converted to to ir/er rules. This means Arjuna is not using pytest markers for test selection. All selection is done based on Arjuna rule set.
- There is an AND condition between package, module and test rules.
- PytestHooks.select_tests hook created to select tests based on Arjuna rules. Called in
pytest_collection_modifyitems
pytest hook in conftest.py. - Rules are also supported for user defined attributes.
- New symbols for rule creation:
- For string targets: !~= for does not match and !*= does not partially match.
- Arjuna built-in
group
fixture is now a default fixture. Group information is directly available inrequest.group
.request.group.space
can be used to store any objects. - GuiApp's GuiNamespace acts a common namespace across pages, sections and dialogs.
- All run options work with the rule-based approach.
- Support for minimalist project structure for simple use of Arjuna.
- Test Fixtures --> Referred as Test Resources. Have an option setting as default using
default
keyword argument. - Support for
xfail
andskip
keyword arguments in@test
decorator.xfail()
andskip()
helper functions added. - New Exceptions:
- TestDecoratorError
- TestSessionsFileNotFoundError
- TestStagesFileNotFoundError
- TestGroupsFileNotFoundError
- Test function default info, tags, bugs, envs get created for inquiry using
request
. - Fix in updating options from non-default
env
entry in envs.yaml. - Fix to allow a user option name as an Enum constant.
- Fix in auto screenshot in case of failure in HTML report.
- Docs added for:
- Test Functions
- Test Resources
- Test Sessions, Stages and Groups
- PytestHooks made a private API.