allure-framework / allure-framework/allure-python

Allow users to actually take advantage of passed categories via message regex.

Đang mở
#790 0 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
814
Fork
260
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

[//]: # (
. Note: for support questions, please use Stackoverflow or Gitter**.
. This repository's issues are reserved for feature requests and bug reports.
.
. In case of any problems with Allure Jenkins plugin** please use the following repository
. to create an issue: https://github.com/jenkinsci/allure-plugin/issues
.
. Make sure you have a clear name for your issue. The name should start with a capital
. letter and no dot is required in the end of the sentence. An example of good issue names:
.
. - The report is broken in IE11
. - Add an ability to disable default plugins
. - Support emoji in test descriptions
)

_As a user of the categories.json, I want to be able to display "Passed" categories mapped from the categories.json using the `messageRegex`, so that I can show different "Passed" categories by Name in the UI._

#### 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?

In `pytest_runtest_makereport`, the default value of `status_details` is `None`, and when `test_result.status == Status.PASSED`, it's still None.

As far as I know there's no way to actually provide a message that would enable this to work in a `categories.json`

```json
[
{
"name": "Integration Passed",
"messageRegex": ".*IntegrationTest.*",
"matchedStatuses": ["passed"]
}
]
```

#### If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

A simple bit of code I would expect to work

```python
@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
report = (yield).get_result()
if call.when == "call" and report.passed:
report.longrepr = "IntegrationTest Passed"
```

#### What is the expected behavior?

That I can provide a Passed Message to allure to do stuff with the categories.json

```python
status_details = StatusDetails(message=report.longreprtext)
```

#### Please tell us about your environment:

- Allure version: 2.26.0
- Test framework: pytest@7.4.2
- Allure adaptor: allure-pytest@2.13.2

```
platform darwin -- Python 3.11.3, pytest-7.4.2, pluggy-1.3.0
plugins: cov-4.1.0, mock-3.11.1, anyio-3.7.1, xdist-3.3.1, check-2.2.2, allure-pytest-2.13.2
```
#### Other information
None

[//]: # (
. e.g. detailed explanation, stacktraces, related issues, suggestions
. how to fix, links for us to have more context, eg. Stackoverflow, Gitter etc
)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với hook pytest_runtest_makereport trong adapter allure-pytest và truy vết cách report.longrepr hoặc longreprtext trở thành status_details. Bổ sung coverage cho một report đã passed có message khớp với messageRegex, và xác minh rằng categories.json có thể chọn category Passed được nêu tên.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
testing-qa
Loại issue
Tính năng
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.