👉
Allure Behaveで検査結果にMarkdown文書を添付する
このエントリでは、
Allure Behaveで検査結果にMarkdown文書を添付する方法を記載します。
Allureのレポートには、次のページで示されているように、
Screenshots, Videos, Text(html/plain), Tables, URI lists, Documents(xml/json/yaml)
などの形式のデータを添付できます。
Attachments | Allure Report
Markdown形式の文書をそのまま添付できないので、
このエントリでは、HTMLに変換して添付することを考えます。
ライブラリのインストール
まずは、必要なライブラリをインストールします。
$ pip install behave
$ pip install allure-behave
$ pip install markdown
$ pip install requests
MarkdownをHTMLに変換するために、Python-Markdownを使用します。
Python-Markdown
また、スタイルを適用するCSSを取得するために、requestsも入れておきます。
実装コード
以下のコードが、Markdown添付を実装したものです。
sample.feature
Feature: sample feature
Scenario: senario1
When Markdown文書を添付
sample.py
import markdown
import requests
import allure
from behave import *
md_css_body = None
md = markdown.Markdown(extensions=['tables', 'fenced_code', 'codehilite'])
def allure_attach_markdown(name, md_body):
global md_css_body
if md_css_body is None:
resp = requests.get("https://raw.githubusercontent.com/sindresorhus/github-markdown-css/main/github-markdown.css")
md_css_body = resp.text
allure.attach(
'<style>' + md_css_body + '</style><div class=markdown-body>' + md.convert(md_body) + '</div>',
name=name, attachment_type=allure.attachment_type.HTML)
@when("Markdown文書を添付")
def step_impl(context):
allure_attach_markdown(
name="Markdown文書",
md_body="""
# ヘッダ
文章
- リスト1
- リスト2
- リスト3
| 表ヘッダ1 | 表ヘッダ2 |
| -- | -- |
| 表データ1 | 表データ2 |
"""
)
Python-Markdownの初期化時に与えているExtensionについては、次を参照してください。
Extensions | Python-Markdown documentation
以上。
Discussion