allure-python icon indicating copy to clipboard operation
allure-python copied to clipboard

Add labels from env for all tests in a run

Open delatrie opened this issue 3 years ago • 1 comments

I'm submitting a ...

  • [ ] bug report
  • [x] feature request
  • [ ] support request => Please do not submit support request here, see note at the top of this template.

What is the current behavior?

Currently there is no way to pass environment-related info into all tests in a run without modifying the code base of the tests.

What is the expected behavior?

Allure should automatically convert environment variables to labels using the naming convention specified below.

What is the motivation / use case for changing the behavior?

It`s useful to test an application or library across multiple different environments. Such environments may differ in

  • a language version
  • an operating system
  • a platform
  • a dependency version
  • etc.

The environment-based labels help to distinguish test results produced by the same test in different environments. TestOps can group those results apart with its env from label feature.

Other information

Naming convention

Every environment variable in form ALLURE_LABEL_<KEY>=<value> is translated into the label <KEY> with the value <value>. The label is added for each test in the run.

Constraints

To ensure consistency across different allure adapters the following constraints are imposed:

  • The environment variables are captured when the test is about to start (see allure-java)
Example

Given the following environment variables:

ALLURE_LABEL_PYTHON_VERSION=3.11
ALLURE_LABEL_OS=Linux
ALLURE_LABEL_USERNAME=John
ALLURE_LABEL_EMPTY=

When the tests are run.

Then the following labels are present in any *-result.json file created during the run:

{
  ...
  "labels": [
    ...
    {
      "name": "PYTHON_VERSION",
      "value": "3.11"
    },
    {
      "name": "OS",
      "value": "Linux"
    },
    {
      "name": "USERNAME",
      "value": "John"
    },
    {
      "name": "EMPTY",
      "value": ""
    }
  ]
}

delatrie avatar Dec 20 '22 16:12 delatrie

Hi! This feature is very needed for my team. It would allow us to work around the allure testops filtering limitations without needing to modify codebase.

Is this being worked on?

cveal-Momnt avatar Apr 16 '24 21:04 cveal-Momnt