allure-framework / allure-framework/allure-python

Add labels from env for all tests in a run

オープン
#721 コメント 1 件 リアクション 9 件 担当者 0 名 GitHub で見る
contribute task:new feature theme:core
主要言語
Python
スター
814
フォーク
260
PR マージ指標
30日以内にマージされた PR はありません

説明

#### 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_=` is translated into the label `` with the 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](https://github.com/allure-framework/allure-java/blob/e91fb588572ed9397911e988035bc000cd93b354/allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java#L509))

##### 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:
```json
{
...
"labels": [
...
{
"name": "PYTHON_VERSION",
"value": "3.11"
},
{
"name": "OS",
"value": "Linux"
},
{
"name": "USERNAME",
"value": "John"
},
{
"name": "EMPTY",
"value": ""
}
]
}
```

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、allure-junit-platform/src/main/java/io/qameta/allure/junitplatform/AllureJunitPlatform.java にある環境ラベルのタイミングに関するリファレンスと、結果 JSON ファイルを作成する Python adapter のエントリーポイントを確認します。既存の adapter テストを実行し、その後、各テスト結果が空の値も含めて ALLURE_LABEL_ 変数を受け取り、期待されるラベル名と値になっていることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
testing
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。