增加测试框架对allure测试报告的支持,已完成初版,能用户通过-report参数指定生成的是pytest-html报告还是allure报告
This commit is contained in:
@@ -1,45 +1,41 @@
|
||||
import pytest
|
||||
from case_utils.assert_handle import assert_response, assert_sql
|
||||
from common_utils.base_request import BaseRequest
|
||||
from loguru import logger
|
||||
from case_utils.request_data_handle import RequestPreDataHandle, after_extract, case_data_replace,eval_data_process
|
||||
from case_utils.request_data_handle import RequestPreDataHandle, RequestHandle
|
||||
from pytest_html import extras # 往pytest-html报告中填写额外的内容
|
||||
from common_utils.func_handle import add_docstring
|
||||
from case_utils.allure_handle import allure_title
|
||||
import allure
|
||||
|
||||
# 用例数据
|
||||
cases = ${case_data}
|
||||
|
||||
@pytest.fixture(params=${case_data})
|
||||
def case(request):
|
||||
"""
|
||||
收集用例数据
|
||||
"""
|
||||
return request.param
|
||||
|
||||
@allure.story(f'{cases["case_common"]["allure_story"]}')
|
||||
@pytest.mark.${func_title}
|
||||
@pytest.mark.auto
|
||||
@pytest.mark.parametrize("case", cases.get("case_info"))
|
||||
def ${func_title}_auto(case, extra, request):
|
||||
logger.info("-----------------------------START-开始执行用例-----------------------------")
|
||||
logger.debug(f"当前执行的用例数据:{case}")
|
||||
try:
|
||||
# 获取命令行参数,判断当前处于哪个环境
|
||||
# 获取命令行参数,判断当前处于哪个环境
|
||||
env = request.config.getoption("--env")
|
||||
# 给当前测试方法添加文档注释
|
||||
add_docstring(case.get("title", ""))(${func_title}_auto)
|
||||
# 添加用例标题作为allure中显示的用例标题
|
||||
allure_title(case.get("title", ""))
|
||||
if case.get("run", None):
|
||||
# 处理请求前的用例数据
|
||||
# 处理请求前的用例数据
|
||||
case_data = RequestPreDataHandle(case).request_data_handle()
|
||||
# 将用例数据显示在pytest-html报告中
|
||||
extra.append(extras.text(str(case_data), name="用例数据"))
|
||||
# 发送请求
|
||||
response = BaseRequest.send_request(case_data)
|
||||
response = RequestHandle(case_data).send_request_extract()
|
||||
# 将响应数据显示在pytest-html报告中
|
||||
extra.append(extras.text(str(response.text), name="响应数据"))
|
||||
# 请求后,提取后置参数作为全局变量
|
||||
after_extract(response, case_data["extract"])
|
||||
# 从全局变量中获取最新值,替换数据库断言中的参数
|
||||
case_data["assert_sql"] = eval_data_process(case_data_replace(case_data["assert_sql"]))
|
||||
# 进行响应断言
|
||||
assert_response(response, case_data["assert_response"])
|
||||
# 进行数据库断言
|
||||
# 进行数据库断言
|
||||
assert_sql(env, case_data["assert_sql"])
|
||||
else:
|
||||
reason = f"标记了该用例为false,不执行\\n"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# @Software: PyCharm
|
||||
# @Desc: 全局变量
|
||||
|
||||
from enum import Enum
|
||||
from enum import Enum, unique # python 3.x版本才能使用
|
||||
|
||||
# 定义一个全局变量,作用于接口关联数据存储
|
||||
GLOBAL_VARS = {}
|
||||
@@ -29,3 +29,32 @@ class NotificationType(Enum):
|
||||
EMAIL = 3
|
||||
ALL = 4
|
||||
|
||||
|
||||
@unique # 枚举类装饰器,确保只有一个名称绑定到任何一个值。
|
||||
class AllureAttachmentType(Enum):
|
||||
"""
|
||||
allure 报告的文件类型枚举
|
||||
"""
|
||||
TEXT = "txt"
|
||||
CSV = "csv"
|
||||
TSV = "tsv"
|
||||
URI_LIST = "uri"
|
||||
|
||||
HTML = "html"
|
||||
XML = "xml"
|
||||
JSON = "json"
|
||||
YAML = "yaml"
|
||||
PCAP = "pcap"
|
||||
|
||||
PNG = "png"
|
||||
JPG = "jpg"
|
||||
SVG = "svg"
|
||||
GIF = "gif"
|
||||
BMP = "bmp"
|
||||
TIFF = "tiff"
|
||||
|
||||
MP4 = "mp4"
|
||||
OGG = "ogg"
|
||||
WEBM = "webm"
|
||||
|
||||
PDF = "pdf"
|
||||
|
||||
1
config/logo.svg
Normal file
1
config/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 563.24 108.04"><defs><style>.cls-1,.cls-2{fill-rule:evenodd;}.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:#fffdfd;}</style><linearGradient id="未命名的渐变_12" y1="54.02" x2="169.98" y2="54.02" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6dffff"/><stop offset="1" stop-color="#0080ff"/></linearGradient></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M125.24,33.3l-4.56-6.22-4,2V79L120,80.75V75.21l5.24,8.48,4.25.66V23.69l-4.25,1.64Zm-94,51.05,9.48-4.74V28.43l-9.48-4.74ZM96.3,90.81l8.53,5.08V9.48L96.3,14.56ZM84.06,0H72.21V108H90.35V97.32H84.06ZM45.66,22.39l4.69,1.73V95.79l8.57-4.43V27.83l4.59,1.65V19.81L45.66,9.48ZM0,80.68,20.61,70.24V50.58l-9.79-1v6.91h3.92v6.67L8,66.21V45l12.65,2.29V39.22L0,32.4Zm152.6-24.4L167.79,32.4l-11.33,1.23-7.54,10V37l-8.33,2V74.9l8.33,1.74V69.76L157,80l13,.65Z"/><path class="cls-2" d="M252.36,18.32,256,12.18H197.73V59.31h36.53l5-5v5h16.53V30.37H226.9V36.6h12.32V53.16H214.67V18.32Zm34.47-6.23h-16V22.26h16Zm0,14h-16V59.23h16ZM336.5,59.23,340,53.49h-13.8V32.1h10.49l4-5.91H326.17V15.37H310.22V26.19H301.7V32.1h8.52V59.23Zm35.79-47h-16.7V59.31H399.4l3.47-6.15H372.29ZM433.7,26.11h-16V59.23h16Zm0-14h-16V22.26h16Zm14.87,47h15.95V31.93h10l5.54-5.9H448.57Zm31.49,0h15.79V26H480.06Zm46.62-17.54,17.11,17.71h17.85L543.7,40.13l18.27-14H542.22l-15.54,11.4V12.09H510.73V59.23h15.95ZM283,86.7H278.8a26.62,26.62,0,0,0,1.09-3.9c.2-1.07.31-1.64.33-1.72V78.19h6.16V75.07H274.75v3.12h2.67v2.53c0,.22-.12.7-.27,1.45a24.55,24.55,0,0,1-.75,2.69c-.34,1-.78,2.16-1.31,3.36a20.9,20.9,0,0,1-2,3.5l2.17,1.94c.21-.29.41-.58.58-.87s.36-.58.55-.87v12.66h6.25a2.94,2.94,0,0,0,2.28-1,3.63,3.63,0,0,0,.93-2.53V86.14H283ZM283,101c0,.29-.14.44-.42.44h-3.42V89.82H283Zm19.31-18.48h-1.53l2.56-3.81V76.29H292.56a12.05,12.05,0,0,0,.64-1.3l-2.49-1.39a21.16,21.16,0,0,1-1.31,2.49c-.5.82-1,1.55-1.41,2.18s-1,1.36-1.58,2.18l2.06,2s.29-.35.73-.91a24.75,24.75,0,0,0,1.51-2.17h8.71l-2.09,3.12h-9.71V93.69a27.82,27.82,0,0,1-.23,3.51c-.16,1.18-.33,2.24-.52,3.19s-.44,2-.74,3.24l1.31.48,1.35.47s0-.22.15-.57.2-.82.33-1.39.27-1.22.41-2,.27-1.53.39-2.38h4.66v5.5h2.81v-5.5h4.8v2.57q0,.48-.42.48h-1.57v3.08H302a2.91,2.91,0,0,0,2.27-1,3.63,3.63,0,0,0,.93-2.53V82h-2.81Zm-7.61,12.63h-4.34c0-.27,0-.51,0-.75s0-.48,0-.74V91.57h4.3Zm0-6.73h-4.3V85.67h4.3Zm7.61,6.73h-4.8v-3.6h4.8Zm0-6.73h-4.8V85.67h4.8Zm21-.55,7.53,3.4,1-2.89L324.35,85Zm11.84-3.21-7.54-3.56L326.52,84l7.53,3.52Zm1.17-11.24-2.49,1.43.89,1.86h-14v6.84h2.81V79.85h24.89v3.56h2.81V76.17h-2.81v.56H337.86Zm2.84,15.24,0-.2V81.4H336.4V88a11.64,11.64,0,0,1-.8,2,17.29,17.29,0,0,1-1.08,1.86H320.65V95h11.13a25.26,25.26,0,0,1-3.7,2.81,39.35,39.35,0,0,1-3.54,2c-1.08.53-2,.93-2.68,1.21l-1.1.42.39,1.46.39,1.5.85-.31c.5-.19,1.13-.44,1.9-.77s1.65-.76,2.62-1.27A34.34,34.34,0,0,0,333,97.9,23.67,23.67,0,0,0,335.85,95H339l-1.06,2.17,11.95,7.24,1.35-2.73L340.17,95h11.41V91.88h-13.7A15.51,15.51,0,0,0,339.17,88.68Zm94.69-10.77h5V74.79H411.28v3.12h5.65v7.53c0,.29,0,.56,0,.83s0,.54-.05.82h-7.72v3.13h7.26a28.26,28.26,0,0,1-1.5,4.69c-.61,1.46-1.21,2.74-1.79,3.84a27.5,27.5,0,0,1-1.53,2.59l-.69,1,2.17,2c0-.08.33-.5.85-1.25a32.15,32.15,0,0,0,1.78-3,47.5,47.5,0,0,0,2-4.41,28.4,28.4,0,0,0,1.54-5.42h11.81v14.09h2.81V90.22H441V87.09h-7.14Zm-2.81,9.18H419.67c0-.28,0-.56.05-.82s0-.54,0-.83V77.91h11.31Zm53.36,5.6a3.67,3.67,0,0,0,.93-2.52V79.7h-2.81v.71h-5.94l.78-1.43L475,77.32l-1.7,3.09h-4.38V93.74h6.79v7.32a.44.44,0,0,1-.12.32.41.41,0,0,1-.3.12h-2.07v3.12h2.1a2.93,2.93,0,0,0,2.28-1.05,3.68,3.68,0,0,0,.92-2.51V93.74h3.63A2.9,2.9,0,0,0,484.41,92.69Zm-12.69-9.16h10.81v2.14H471.72Zm0,7.09V88.8h10.81v1.38c0,.29-.13.44-.39.44Zm-9-11.12-5.23-5.19-1.85,2.3,5.2,5.18Zm7.79,15a23.78,23.78,0,0,1-.79,2.69c-.28.79-.64,1.7-1.08,2.71A25.81,25.81,0,0,1,467,103l2.35,1.74a26.83,26.83,0,0,0,1.79-3.42c.49-1.12.89-2.13,1.2-3s.53-1.6.67-2.16a9.24,9.24,0,0,0,.21-.91Zm-10.35-2.33-4.84,11,2.49,1.34,4.87-11Zm20.37,3.28,3.34,9,2.6-1.18-3.38-9Zm-13.26-18.2h19.17V74.12h-22V92.51a10.92,10.92,0,0,1-.41,2.83,30.11,30.11,0,0,1-1,3c-.38,1-.77,1.91-1.16,2.75s-.71,1.49-.94,1.94l2.42,1.58s.13-.27.33-.65.45-.89.73-1.52.6-1.36.92-2.16.63-1.65.92-2.53a23.12,23.12,0,0,0,.7-2.69,13.44,13.44,0,0,0,.27-2.6ZM460.81,90.1l1.88-2.29-5.23-5.19-1.85,2.3Zm-82.59-3.7a5.5,5.5,0,1,0,5.53,5.5A5.52,5.52,0,0,0,378.22,86.4ZM198.36,90.8h57.15V88.6H198.36Zm307.73-2.2v2.2h57.15V88.6Z"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -1,10 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Version: Python 3.9
|
||||
# @Time : 2023/1/31 17:27
|
||||
# @Time : 2023/5/16 11:12
|
||||
# @Author : chenyinhua
|
||||
# @File : project_path.py
|
||||
# @Software: PyCharm
|
||||
# @Desc: 项目相关路径
|
||||
# @Desc:
|
||||
|
||||
import os
|
||||
|
||||
# ------------------------------------ 项目路径 ----------------------------------------------------#
|
||||
@@ -43,6 +43,17 @@ MANUAL_CASE_DIR = os.path.join(CASE_DIR, "test_manual_case")
|
||||
if not os.path.exists(MANUAL_CASE_DIR):
|
||||
os.mkdir(MANUAL_CASE_DIR)
|
||||
|
||||
# 测试用例方法模板路径
|
||||
CASE_TEMPLATE_DIR = os.path.join(CONF_DIR, "case_template.txt")
|
||||
|
||||
# 自动生成测试用例模块
|
||||
AUTO_CASE_DIR = os.path.join(CASE_DIR, "test_auto_case")
|
||||
|
||||
# 第三方库目录
|
||||
LIB_DIR = os.path.join(BASE_DIR, "lib")
|
||||
|
||||
# Allure报告,测试结果集目录
|
||||
ALLURE_RESULTS_DIR = os.path.join(REPORT_DIR, "allure_results")
|
||||
# Allure报告,HTML测试报告目录
|
||||
ALLURE_HTML_DIR = os.path.join(REPORT_DIR, "allure_html")
|
||||
|
||||
|
||||
@@ -11,14 +11,17 @@
|
||||
CASE_FILE_TYPE = 0
|
||||
|
||||
# 0表示默认不发送任何通知, 1代表钉钉通知,2代表企业微信通知, 3代表邮件通知, 4代表所有途径都发送通知
|
||||
SEND_RESULT_TYPE = 3
|
||||
SEND_RESULT_TYPE = 4
|
||||
|
||||
# 测试报告的定制化信息展示
|
||||
REPORT_TITLE = "自动化测试报告"
|
||||
REPORT_NAME = f"apiautotest-report-"
|
||||
PROJECT_NAME = "GitLink 确实开源"
|
||||
TESTER = "测试人员:陈银花"
|
||||
DEPARTMENT = "所属部门: 开源中心"
|
||||
# 这个需要写入到allure测试结果集的environment.properties(不支持中文)
|
||||
ENV_INFO = {
|
||||
"report_title": "Auto Test Report",
|
||||
"report_name": "autotestreport_",
|
||||
"project_name": "GitLink",
|
||||
"tester": "floraachy",
|
||||
"department": "OpenSource"
|
||||
}
|
||||
|
||||
# 指定日志收集级别
|
||||
LOG_LEVEL = "INFO"
|
||||
@@ -58,18 +61,83 @@ email = {
|
||||
"host": "smtp.qq.com",
|
||||
"to": ["******", "******"] # 收件人邮箱
|
||||
}
|
||||
# ------------------------------------ 邮件通知内容 ----------------------------------------------------#
|
||||
email_subject = f"{ENV_INFO.get('project_name', None)} 接口自动化报告"
|
||||
email_content = """
|
||||
各位同事, 大家好:
|
||||
|
||||
自动化用例于 <strong>${start_time} </strong> 开始运行,运行时长:<strong>${run_time} s</strong>, 目前已执行完成。
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
测试人:<strong> ${tester} </strong>
|
||||
所属部门:<strong> ${department} </strong>
|
||||
项目环境:<strong> ${project_env} </strong>
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
执行结果如下:
|
||||
用例运行总数:<strong> ${total} 个</strong>
|
||||
通过用例个数(passed): <strong><font color="green" >${passed} 个</font></strong>
|
||||
失败用例个数(failed): <strong><font color="red" >${failed} 个</font></strong>
|
||||
异常用例个数(error): <strong><font color="orange" >${broken} 个</font></strong>
|
||||
跳过用例个数(skipped): <strong><font color="grey" >${skipped} 个</font></strong>
|
||||
失败重试用例个数 * 次数之和(rerun): <strong>${rerun} 个</strong>
|
||||
成 功 率:<strong> <font color="green" >${pass_rate} %</font></strong>
|
||||
|
||||
**********************************
|
||||
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
|
||||
"""
|
||||
# ------------------------------------ 钉钉相关配置 ----------------------------------------------------#
|
||||
ding_talk = {
|
||||
"webhook_url": "https://oapi.dingtalk.com/robot/send?access_token=***********",
|
||||
"secret": "***********"
|
||||
}
|
||||
# ------------------------------------ 钉钉通知内容 ----------------------------------------------------#
|
||||
ding_talk_title = f"{ENV_INFO.get('project_name', None)} 接口自动化报告"
|
||||
ding_talk_content = """
|
||||
各位同事, 大家好:
|
||||
|
||||
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s, 目前已执行完成。
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
#### 测试人: ${tester}
|
||||
#### 所属部门: ${department}
|
||||
#### 项目环境:${project_env}
|
||||
---------------------------------------------------------------------------------------------------------------
|
||||
#### 执行结果如下:
|
||||
- 用例运行总数: ${total} 个
|
||||
- 通过用例个数(passed): ${passed} 个
|
||||
- 失败用例个数(failed): ${failed} 个
|
||||
- 异常用例个数(error): ${broken} 个
|
||||
- 跳过用例个数(skipped): ${skipped} 个
|
||||
- 失败重试用例个数 * 次数之和(rerun): ${rerun} 个
|
||||
- 成 功 率: ${pass_rate} %
|
||||
|
||||
**********************************
|
||||
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
|
||||
"""
|
||||
# ------------------------------------ 企业微信相关配置 ----------------------------------------------------#
|
||||
wechat = {
|
||||
"webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********",
|
||||
}
|
||||
# ------------------------------------ 企业微信通知内容 ----------------------------------------------------#
|
||||
wechat_content = """
|
||||
各位同事, 大家好:
|
||||
|
||||
### 自动化用例于 ${start_time} 开始运行,运行时长:${run_time} s, 目前已执行完成。
|
||||
--------------------------------
|
||||
#### 测试人: ${tester}
|
||||
#### 所属部门: ${department}
|
||||
#### 项目环境:${project_env}
|
||||
--------------------------------
|
||||
#### 执行结果如下:
|
||||
- 用例运行总数: ${total} 个
|
||||
- 通过用例个数(passed):<font color=\"info\"> ${passed} 个</font>
|
||||
- 失败用例个数(failed): <font color=\"warning\"> ${failed} 个</font>
|
||||
- 异常用例个数(error): <font color=\"warning\"> ${broken} 个</font>
|
||||
- 跳过用例个数(skipped): <font color=\"comment\"> ${skipped} 个</font>
|
||||
- 失败重试用例个数 * 次数之和(rerun): <font color=\"comment\"> ${rerun} 个</font>
|
||||
- 成 功 率: <font color=\"info\"> ${pass_rate} % </font>
|
||||
|
||||
**********************************
|
||||
附件为具体的测试报告,详细情况可下载附件查看, 非相关负责人员可忽略此消息。谢谢。
|
||||
"""
|
||||
# ------------------------------------ 数据库相关配置 ----------------------------------------------------#
|
||||
db_info = {
|
||||
"test": {
|
||||
@@ -87,7 +155,6 @@ db_info = {
|
||||
},
|
||||
"live": {
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
26
conftest.py
26
conftest.py
@@ -5,15 +5,14 @@
|
||||
# @File : conftest.py
|
||||
# @Software: PyCharm
|
||||
# @Desc: 这是文件的描述信息
|
||||
|
||||
import os.path
|
||||
|
||||
from config.global_vars import GLOBAL_VARS
|
||||
from loguru import logger
|
||||
import pytest
|
||||
from py._xmlgen import html # 安装pytest-html,版本最好是2.1.1
|
||||
from time import strftime
|
||||
from config.settings import test, live, REPORT_TITLE, PROJECT_NAME, TESTER, DEPARTMENT
|
||||
from case_utils.send_result_handle import get_test_info_from_html_report, send_result
|
||||
from config.settings import test, live, ENV_INFO
|
||||
|
||||
|
||||
# ------------------------------------- START: 配置运行环境 ---------------------------------------#
|
||||
@@ -51,7 +50,7 @@ def get_config(request):
|
||||
for k, v in item.items():
|
||||
GLOBAL_VARS[k] = v
|
||||
|
||||
logger.info(f"当前环境变量为:{GLOBAL_VARS}")
|
||||
logger.debug(f"当前环境变量为:{GLOBAL_VARS}")
|
||||
|
||||
|
||||
# ------------------------------------- END: 配置运行环境 ---------------------------------------#
|
||||
@@ -80,7 +79,7 @@ def pytest_html_report_title(report):
|
||||
"""
|
||||
修改报告标题
|
||||
"""
|
||||
report.title = REPORT_TITLE
|
||||
report.title = ENV_INFO.get('report_title', "")
|
||||
|
||||
|
||||
def pytest_configure(config):
|
||||
@@ -88,7 +87,7 @@ def pytest_configure(config):
|
||||
# 在测试运行前,修改Environment部分信息,配置测试报告环境信息
|
||||
"""
|
||||
# 给环境表 添加项目名称及开始时间
|
||||
config._metadata["项目名称"] = PROJECT_NAME
|
||||
config._metadata["项目名称"] = ENV_INFO.get('project_name', "")
|
||||
config._metadata['开始时间'] = strftime('%Y-%m-%d %H:%M:%S')
|
||||
# 给环境表 移除packages 及plugins
|
||||
config._metadata.pop("Packages")
|
||||
@@ -101,25 +100,16 @@ def pytest_sessionfinish(session, exitstatus):
|
||||
在测试运行后,修改Environment部分信息
|
||||
"""
|
||||
# 给环境表 添加 项目环境
|
||||
env = session.config.getoption("--env") # 可以获取到命令行参数指定的环境
|
||||
env = session.config.getoption("--env") # 可以获取到命令行参数指定的环境
|
||||
session.config._metadata['项目环境'] = {GLOBAL_VARS.get("host", env)}
|
||||
|
||||
|
||||
@pytest.hookimpl(hookwrapper=True)
|
||||
def pytest_terminal_summary(terminalreporter, exitstatus, config):
|
||||
yield
|
||||
# 获取测试报告路径,并发送测试结果
|
||||
report_path = config.getoption('--html')
|
||||
results = get_test_info_from_html_report(report_path)
|
||||
send_result(results, report_path)
|
||||
|
||||
|
||||
def pytest_html_results_summary(prefix, summary, postfix):
|
||||
"""
|
||||
修改Summary部分的信息
|
||||
"""
|
||||
prefix.extend([html.p(TESTER)])
|
||||
prefix.extend([html.p(DEPARTMENT)])
|
||||
prefix.extend([html.p(f'测试人员:{ENV_INFO.get("tester", "")}')])
|
||||
prefix.extend([html.p(f'所属部门: :{ENV_INFO.get("department", "")}')])
|
||||
|
||||
|
||||
def pytest_html_results_table_header(cells):
|
||||
|
||||
239
lib/allure-2.22.0/bin/allure
Normal file
239
lib/allure-2.22.0/bin/allure
Normal file
@@ -0,0 +1,239 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# allure start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh allure
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and ALLURE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
export APP_HOME=$( cd "${APP_HOME:-./}.." && pwd -P ) || exit
|
||||
|
||||
APP_NAME="allure"
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and ALLURE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/lib/*:$APP_HOME/lib/config
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and ALLURE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $ALLURE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
-classpath "$CLASSPATH" \
|
||||
io.qameta.allure.CommandLine \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $ALLURE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
91
lib/allure-2.22.0/bin/allure.bat
Normal file
91
lib/allure-2.22.0/bin/allure.bat
Normal file
@@ -0,0 +1,91 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem allure startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%..
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and ALLURE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\lib\*;%APP_HOME%\lib\config
|
||||
|
||||
|
||||
@rem Execute allure
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %ALLURE_OPTS% -classpath "%CLASSPATH%" io.qameta.allure.CommandLine %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable ALLURE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%ALLURE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
0
lib/allure-2.22.0/config/allure-cucumber.yml
Normal file
0
lib/allure-2.22.0/config/allure-cucumber.yml
Normal file
3
lib/allure-2.22.0/config/allure-junit.yml
Normal file
3
lib/allure-2.22.0/config/allure-junit.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
plugins:
|
||||
- junit-plugin
|
||||
- packages-plugin
|
||||
11
lib/allure-2.22.0/config/allure.yml
Normal file
11
lib/allure-2.22.0/config/allure.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
plugins:
|
||||
- junit-xml-plugin
|
||||
- xunit-xml-plugin
|
||||
- trx-plugin
|
||||
- behaviors-plugin
|
||||
- packages-plugin
|
||||
- screen-diff-plugin
|
||||
- xctest-plugin
|
||||
- jira-plugin
|
||||
- xray-plugin
|
||||
- custom-logo-plugin
|
||||
BIN
lib/allure-2.22.0/lib/allure-commandline-2.22.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/allure-commandline-2.22.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/allure-generator-2.22.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/allure-generator-2.22.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/allure-model-2.20.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/allure-model-2.20.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/allure-plugin-api-2.22.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/allure-plugin-api-2.22.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/allure1-model-1.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/allure1-model-1.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/annotations-15.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/annotations-15.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-beanutils-1.9.4.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-beanutils-1.9.4.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-codec-1.11.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-codec-1.11.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-collections-3.2.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-collections-3.2.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-collections4-4.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-collections4-4.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-io-2.11.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-io-2.11.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-lang3-3.12.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-lang3-3.12.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-logging-1.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-logging-1.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/commons-text-1.3.jar
Normal file
BIN
lib/allure-2.22.0/lib/commons-text-1.3.jar
Normal file
Binary file not shown.
2
lib/allure-2.22.0/lib/config/jetty-logging.properties
Normal file
2
lib/allure-2.22.0/lib/config/jetty-logging.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.LoggerLog
|
||||
org.eclipse.jetty.LEVEL=WARN
|
||||
12
lib/allure-2.22.0/lib/config/logback.xml
Normal file
12
lib/allure-2.22.0/lib/config/logback.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>%msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
<root level="INFO">
|
||||
<appender-ref ref="stdout"/>
|
||||
</root>
|
||||
<logger name="org.mortbay.log" level="INFO"/>
|
||||
</configuration>
|
||||
BIN
lib/allure-2.22.0/lib/flexmark-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-ext-tables-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-ext-tables-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-ast-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-ast-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-builder-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-builder-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-collection-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-collection-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-data-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-data-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-dependency-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-dependency-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-format-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-format-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-html-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-html-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-misc-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-misc-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-options-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-options-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-sequence-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-sequence-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/flexmark-util-visitor-0.62.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/flexmark-util-visitor-0.62.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/freemarker-2.3.32.jar
Normal file
BIN
lib/allure-2.22.0/lib/freemarker-2.3.32.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/httpclient-4.5.14.jar
Normal file
BIN
lib/allure-2.22.0/lib/httpclient-4.5.14.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/httpcore-4.4.16.jar
Normal file
BIN
lib/allure-2.22.0/lib/httpcore-4.4.16.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-annotations-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-annotations-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-core-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-core-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-databind-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-databind-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-dataformat-xml-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-dataformat-xml-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-dataformat-yaml-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-dataformat-yaml-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jackson-module-jaxb-annotations-2.14.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jackson-module-jaxb-annotations-2.14.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jakarta.activation-api-1.2.2.jar
Normal file
BIN
lib/allure-2.22.0/lib/jakarta.activation-api-1.2.2.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jakarta.xml.bind-api-2.3.3.jar
Normal file
BIN
lib/allure-2.22.0/lib/jakarta.xml.bind-api-2.3.3.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/javax.activation-api-1.2.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/javax.activation-api-1.2.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/javax.servlet-api-3.1.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/javax.servlet-api-3.1.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jaxb-api-2.3.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/jaxb-api-2.3.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jaxb-utils-1.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/jaxb-utils-1.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jcommander-1.82.jar
Normal file
BIN
lib/allure-2.22.0/lib/jcommander-1.82.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jetty-http-9.4.49.v20220914.jar
Normal file
BIN
lib/allure-2.22.0/lib/jetty-http-9.4.49.v20220914.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jetty-io-9.4.49.v20220914.jar
Normal file
BIN
lib/allure-2.22.0/lib/jetty-io-9.4.49.v20220914.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jetty-server-9.4.49.v20220914.jar
Normal file
BIN
lib/allure-2.22.0/lib/jetty-server-9.4.49.v20220914.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/jetty-util-9.4.49.v20220914.jar
Normal file
BIN
lib/allure-2.22.0/lib/jetty-util-9.4.49.v20220914.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/logback-classic-1.3.5.jar
Normal file
BIN
lib/allure-2.22.0/lib/logback-classic-1.3.5.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/logback-core-1.3.5.jar
Normal file
BIN
lib/allure-2.22.0/lib/logback-core-1.3.5.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/opencsv-4.6.jar
Normal file
BIN
lib/allure-2.22.0/lib/opencsv-4.6.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/properties-2.0.RC5.jar
Normal file
BIN
lib/allure-2.22.0/lib/properties-2.0.RC5.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/slf4j-api-2.0.3.jar
Normal file
BIN
lib/allure-2.22.0/lib/slf4j-api-2.0.3.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/snakeyaml-1.33.jar
Normal file
BIN
lib/allure-2.22.0/lib/snakeyaml-1.33.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/stax2-api-4.2.1.jar
Normal file
BIN
lib/allure-2.22.0/lib/stax2-api-4.2.1.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/tika-core-2.6.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/tika-core-2.6.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/lib/woodstox-core-6.4.0.jar
Normal file
BIN
lib/allure-2.22.0/lib/woodstox-core-6.4.0.jar
Normal file
Binary file not shown.
1
lib/allure-2.22.0/plugins/README.txt
Normal file
1
lib/allure-2.22.0/plugins/README.txt
Normal file
@@ -0,0 +1 @@
|
||||
The directory with Allure plugins. To add the plugin simply unpack it to this folder.
|
||||
@@ -0,0 +1,7 @@
|
||||
id: behaviors
|
||||
name: Behaviors aggregator
|
||||
description: The aggregator adds behaviors tab to the report
|
||||
extensions:
|
||||
- io.qameta.allure.behaviors.BehaviorsPlugin
|
||||
jsFiles:
|
||||
- index.js
|
||||
Binary file not shown.
206
lib/allure-2.22.0/plugins/behaviors-plugin/static/index.js
Normal file
206
lib/allure-2.22.0/plugins/behaviors-plugin/static/index.js
Normal file
@@ -0,0 +1,206 @@
|
||||
'use strict';
|
||||
|
||||
allure.api.addTranslation('en', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Behaviors'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Features by stories',
|
||||
showAll: 'show all'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('ru', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Функциональность'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Функциональность',
|
||||
showAll: 'показать все'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('zh', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: '功能'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: '特性场景',
|
||||
showAll: '显示所有'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('de', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Verhalten'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Features nach Stories',
|
||||
showAll: 'Zeige alle'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('nl', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Functionaliteit'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Features en story’s',
|
||||
showAll: 'Toon alle'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('he', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'התנהגויות'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'תכונות לפי סיפורי משתמש',
|
||||
showAll: 'הצג הכול'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('br', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Comportamentos'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Funcionalidades por história',
|
||||
showAll: 'Mostrar tudo'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('ja', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: '振る舞い'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'ストーリー別の機能',
|
||||
showAll: '全て表示'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('es', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Funcionalidades'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Funcionalidades por Historias de Usuario',
|
||||
showAll: 'mostrar todo'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('kr', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: '동작'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: '스토리별 기능',
|
||||
showAll: '전체 보기'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('fr', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Comportements'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Thèmes par histoires',
|
||||
showAll: 'Montrer tout'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('pl', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Zachowania'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Funkcje według historii',
|
||||
showAll: 'pokaż wszystko'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('az', {
|
||||
tab: {
|
||||
behaviors: {
|
||||
name: 'Davranışlar'
|
||||
}
|
||||
},
|
||||
widget: {
|
||||
behaviors: {
|
||||
name: 'Hekayələr üzrə xüsusiyyətlər',
|
||||
showAll: 'hamısını göstər'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTab('behaviors', {
|
||||
title: 'tab.behaviors.name', icon: 'fa fa-list',
|
||||
route: 'behaviors(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
|
||||
onEnter: (function (testGroup, testResult, testResultTab) {
|
||||
return new allure.components.TreeLayout({
|
||||
testGroup: testGroup,
|
||||
testResult: testResult,
|
||||
testResultTab: testResultTab,
|
||||
tabName: 'tab.behaviors.name',
|
||||
baseUrl: 'behaviors',
|
||||
url: 'data/behaviors.json',
|
||||
csvUrl: 'data/behaviors.csv'
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
allure.api.addWidget('widgets', 'behaviors', allure.components.WidgetStatusView.extend({
|
||||
rowTag: 'a',
|
||||
title: 'widget.behaviors.name',
|
||||
baseUrl: 'behaviors',
|
||||
showLinks: true
|
||||
}));
|
||||
@@ -0,0 +1,5 @@
|
||||
id: custom-logo
|
||||
name: Custom logo aggregator
|
||||
description: The aggregator replaces default Allure logo with a custom one
|
||||
cssFiles:
|
||||
- styles.css
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable-background="new 0 0 128 128" version="1.1" viewBox="0 0 128 128" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Layer_1"><rect fill="#F4F5F5" height="1520" opacity="0" width="727.938" x="-59.984" y="-351"/></g><g id="Layer_2"><g><circle cx="64" cy="64" fill="#6E9583" r="64"/><g><defs><circle cx="64" cy="64" id="SVGID_3_" r="64"/></defs><clipPath id="SVGID_2_"><use overflow="visible" xlink:href="#SVGID_3_"/></clipPath><polygon clip-path="url(#SVGID_2_)" fill="#648778" points="93.572,29.677 128,64 128,128 54.36,128 33.341,106.906 "/></g><path d="M84.044,20H36.018C33.579,20,32,22.11,32,24.549v78.903c0,2.439,1.579,4.549,4.018,4.549h55.989 c2.439,0,4.018-2.11,4.018-4.549V32.143L84.044,20z" fill="#F1F1F1"/><g><defs><path d="M84.044,20H36.018C33.579,20,32,22.11,32,24.549v78.903c0,2.439,1.579,4.549,4.018,4.549h55.989 c2.439,0,4.018-2.11,4.018-4.549V32.143L84.044,20z" id="SVGID_5_"/></defs><clipPath id="SVGID_4_"><use overflow="visible" xlink:href="#SVGID_5_"/></clipPath><g clip-path="url(#SVGID_4_)"><polygon fill="#DDE1F1" points="50.948,67.621 65.539,82.042 42.971,83.087 49.777,90 42.971,91.087 49.277,97.555 42.971,99.087 53.027,109.305 97.684,109.305 97.684,75.707 97.075,54.055 81.059,37.758 70.97,44.918 62.684,35.107 "/></g></g><path d="M88.186,32.138l7.839,0.005L84.044,20v7.96C84.044,30.398,85.769,32.138,88.186,32.138z" fill="#C2DFC9"/><path d="M84,83.5H44c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5h40c0.828,0,1.5,0.672,1.5,1.5 S84.828,83.5,84,83.5z" fill="#495260"/><path d="M84,91.5H44c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5h40c0.828,0,1.5,0.672,1.5,1.5 S84.828,91.5,84,91.5z" fill="#495260"/><path d="M84,99.5H44c-0.828,0-1.5-0.672-1.5-1.5s0.672-1.5,1.5-1.5h40c0.828,0,1.5,0.672,1.5,1.5 S84.828,99.5,84,99.5z" fill="#495260"/><g><path d="M69.568,31.844l-1.319,11.303c2.314,0.88,4.242,2.728,5.132,5.245c0.573,1.619,0.631,3.292,0.274,4.851 l10.257,4.895c0.527,0.252,1.155-0.023,1.329-0.581c1.308-4.188,1.323-8.819-0.253-13.273 c-2.379-6.723-7.827-11.477-14.212-13.254C70.21,30.872,69.636,31.26,69.568,31.844z" fill="#0E9CD9"/><path d="M66.68,59.901c-3.653,0.668-7.398-1.12-9.176-4.38c-1.094-2.006-1.312-4.174-0.858-6.157L46.39,44.469 c-0.527-0.251-1.155,0.023-1.329,0.58c-1.286,4.118-1.322,8.663,0.175,13.049c3.701,10.842,15.624,16.783,26.503,13.191 c4.655-1.537,8.399-4.531,10.911-8.3c0.324-0.486,0.141-1.147-0.385-1.398l-10.257-4.896 C70.751,58.296,68.929,59.49,66.68,59.901z" fill="#E95037"/><path d="M62.239,43.074c0.734-0.26,1.479-0.405,2.22-0.464l1.316-11.275c0.067-0.576-0.389-1.08-0.968-1.071 c-2.218,0.035-4.469,0.421-6.676,1.202c-4.455,1.576-8.045,4.5-10.479,8.151c-0.324,0.486-0.142,1.147,0.385,1.399l10.257,4.895 C59.282,44.654,60.62,43.647,62.239,43.074z" fill="#69B32D"/><g><defs><path d="M69.695,30.76l-1.446,12.387c2.314,0.88,4.242,2.728,5.132,5.245c0.573,1.619,0.631,3.292,0.274,4.851 l10.257,4.895c0.527,0.252,1.155-0.023,1.329-0.581c1.308-4.188,1.323-8.819-0.253-13.273 C82.476,37.185,76.541,32.281,69.695,30.76z M66.68,59.901c-3.653,0.668-7.398-1.12-9.176-4.38 c-1.094-2.006-1.312-4.174-0.858-6.157L46.39,44.469c-0.527-0.251-1.155,0.023-1.329,0.58 c-1.286,4.118-1.322,8.663,0.175,13.049c3.701,10.842,15.624,16.783,26.503,13.191c4.655-1.537,8.399-4.531,10.911-8.3 c0.324-0.486,0.141-1.147-0.385-1.398l-10.257-4.896C70.751,58.296,68.929,59.49,66.68,59.901z M62.239,43.074 c0.734-0.26,1.479-0.405,2.22-0.464l1.316-11.275c0.067-0.576-0.389-1.08-0.968-1.071c-2.218,0.035-4.469,0.421-6.676,1.202 c-4.455,1.576-8.045,4.5-10.479,8.151c-0.324,0.486-0.142,1.147,0.385,1.399l10.257,4.895 C59.282,44.654,60.62,43.647,62.239,43.074z" id="SVGID_7_"/></defs><clipPath id="SVGID_6_"><use overflow="visible" xlink:href="#SVGID_7_"/></clipPath><circle clip-path="url(#SVGID_6_)" cx="65.151" cy="51.304" fill="#FFFFFF" opacity="0.4" r="12.507"/></g></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 563.24 108.04"><defs><style>.cls-1,.cls-2{fill-rule:evenodd;}.cls-1{fill:url(#未命名的渐变_12);}.cls-2{fill:#fffdfd;}</style><linearGradient id="未命名的渐变_12" y1="54.02" x2="169.98" y2="54.02" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6dffff"/><stop offset="1" stop-color="#0080ff"/></linearGradient></defs><g id="图层_2" data-name="图层 2"><g id="图层_1-2" data-name="图层 1"><path class="cls-1" d="M125.24,33.3l-4.56-6.22-4,2V79L120,80.75V75.21l5.24,8.48,4.25.66V23.69l-4.25,1.64Zm-94,51.05,9.48-4.74V28.43l-9.48-4.74ZM96.3,90.81l8.53,5.08V9.48L96.3,14.56ZM84.06,0H72.21V108H90.35V97.32H84.06ZM45.66,22.39l4.69,1.73V95.79l8.57-4.43V27.83l4.59,1.65V19.81L45.66,9.48ZM0,80.68,20.61,70.24V50.58l-9.79-1v6.91h3.92v6.67L8,66.21V45l12.65,2.29V39.22L0,32.4Zm152.6-24.4L167.79,32.4l-11.33,1.23-7.54,10V37l-8.33,2V74.9l8.33,1.74V69.76L157,80l13,.65Z"/><path class="cls-2" d="M252.36,18.32,256,12.18H197.73V59.31h36.53l5-5v5h16.53V30.37H226.9V36.6h12.32V53.16H214.67V18.32Zm34.47-6.23h-16V22.26h16Zm0,14h-16V59.23h16ZM336.5,59.23,340,53.49h-13.8V32.1h10.49l4-5.91H326.17V15.37H310.22V26.19H301.7V32.1h8.52V59.23Zm35.79-47h-16.7V59.31H399.4l3.47-6.15H372.29ZM433.7,26.11h-16V59.23h16Zm0-14h-16V22.26h16Zm14.87,47h15.95V31.93h10l5.54-5.9H448.57Zm31.49,0h15.79V26H480.06Zm46.62-17.54,17.11,17.71h17.85L543.7,40.13l18.27-14H542.22l-15.54,11.4V12.09H510.73V59.23h15.95ZM283,86.7H278.8a26.62,26.62,0,0,0,1.09-3.9c.2-1.07.31-1.64.33-1.72V78.19h6.16V75.07H274.75v3.12h2.67v2.53c0,.22-.12.7-.27,1.45a24.55,24.55,0,0,1-.75,2.69c-.34,1-.78,2.16-1.31,3.36a20.9,20.9,0,0,1-2,3.5l2.17,1.94c.21-.29.41-.58.58-.87s.36-.58.55-.87v12.66h6.25a2.94,2.94,0,0,0,2.28-1,3.63,3.63,0,0,0,.93-2.53V86.14H283ZM283,101c0,.29-.14.44-.42.44h-3.42V89.82H283Zm19.31-18.48h-1.53l2.56-3.81V76.29H292.56a12.05,12.05,0,0,0,.64-1.3l-2.49-1.39a21.16,21.16,0,0,1-1.31,2.49c-.5.82-1,1.55-1.41,2.18s-1,1.36-1.58,2.18l2.06,2s.29-.35.73-.91a24.75,24.75,0,0,0,1.51-2.17h8.71l-2.09,3.12h-9.71V93.69a27.82,27.82,0,0,1-.23,3.51c-.16,1.18-.33,2.24-.52,3.19s-.44,2-.74,3.24l1.31.48,1.35.47s0-.22.15-.57.2-.82.33-1.39.27-1.22.41-2,.27-1.53.39-2.38h4.66v5.5h2.81v-5.5h4.8v2.57q0,.48-.42.48h-1.57v3.08H302a2.91,2.91,0,0,0,2.27-1,3.63,3.63,0,0,0,.93-2.53V82h-2.81Zm-7.61,12.63h-4.34c0-.27,0-.51,0-.75s0-.48,0-.74V91.57h4.3Zm0-6.73h-4.3V85.67h4.3Zm7.61,6.73h-4.8v-3.6h4.8Zm0-6.73h-4.8V85.67h4.8Zm21-.55,7.53,3.4,1-2.89L324.35,85Zm11.84-3.21-7.54-3.56L326.52,84l7.53,3.52Zm1.17-11.24-2.49,1.43.89,1.86h-14v6.84h2.81V79.85h24.89v3.56h2.81V76.17h-2.81v.56H337.86Zm2.84,15.24,0-.2V81.4H336.4V88a11.64,11.64,0,0,1-.8,2,17.29,17.29,0,0,1-1.08,1.86H320.65V95h11.13a25.26,25.26,0,0,1-3.7,2.81,39.35,39.35,0,0,1-3.54,2c-1.08.53-2,.93-2.68,1.21l-1.1.42.39,1.46.39,1.5.85-.31c.5-.19,1.13-.44,1.9-.77s1.65-.76,2.62-1.27A34.34,34.34,0,0,0,333,97.9,23.67,23.67,0,0,0,335.85,95H339l-1.06,2.17,11.95,7.24,1.35-2.73L340.17,95h11.41V91.88h-13.7A15.51,15.51,0,0,0,339.17,88.68Zm94.69-10.77h5V74.79H411.28v3.12h5.65v7.53c0,.29,0,.56,0,.83s0,.54-.05.82h-7.72v3.13h7.26a28.26,28.26,0,0,1-1.5,4.69c-.61,1.46-1.21,2.74-1.79,3.84a27.5,27.5,0,0,1-1.53,2.59l-.69,1,2.17,2c0-.08.33-.5.85-1.25a32.15,32.15,0,0,0,1.78-3,47.5,47.5,0,0,0,2-4.41,28.4,28.4,0,0,0,1.54-5.42h11.81v14.09h2.81V90.22H441V87.09h-7.14Zm-2.81,9.18H419.67c0-.28,0-.56.05-.82s0-.54,0-.83V77.91h11.31Zm53.36,5.6a3.67,3.67,0,0,0,.93-2.52V79.7h-2.81v.71h-5.94l.78-1.43L475,77.32l-1.7,3.09h-4.38V93.74h6.79v7.32a.44.44,0,0,1-.12.32.41.41,0,0,1-.3.12h-2.07v3.12h2.1a2.93,2.93,0,0,0,2.28-1.05,3.68,3.68,0,0,0,.92-2.51V93.74h3.63A2.9,2.9,0,0,0,484.41,92.69Zm-12.69-9.16h10.81v2.14H471.72Zm0,7.09V88.8h10.81v1.38c0,.29-.13.44-.39.44Zm-9-11.12-5.23-5.19-1.85,2.3,5.2,5.18Zm7.79,15a23.78,23.78,0,0,1-.79,2.69c-.28.79-.64,1.7-1.08,2.71A25.81,25.81,0,0,1,467,103l2.35,1.74a26.83,26.83,0,0,0,1.79-3.42c.49-1.12.89-2.13,1.2-3s.53-1.6.67-2.16a9.24,9.24,0,0,0,.21-.91Zm-10.35-2.33-4.84,11,2.49,1.34,4.87-11Zm20.37,3.28,3.34,9,2.6-1.18-3.38-9Zm-13.26-18.2h19.17V74.12h-22V92.51a10.92,10.92,0,0,1-.41,2.83,30.11,30.11,0,0,1-1,3c-.38,1-.77,1.91-1.16,2.75s-.71,1.49-.94,1.94l2.42,1.58s.13-.27.33-.65.45-.89.73-1.52.6-1.36.92-2.16.63-1.65.92-2.53a23.12,23.12,0,0,0,.7-2.69,13.44,13.44,0,0,0,.27-2.6ZM460.81,90.1l1.88-2.29-5.23-5.19-1.85,2.3Zm-82.59-3.7a5.5,5.5,0,1,0,5.53,5.5A5.52,5.52,0,0,0,378.22,86.4ZM198.36,90.8h57.15V88.6H198.36Zm307.73-2.2v2.2h57.15V88.6Z"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,11 @@
|
||||
.side-nav__brand {
|
||||
background: url('logo.svg') no-repeat left center !important;
|
||||
margin-left: 10px;
|
||||
height: 65px;
|
||||
width: 150px;
|
||||
background-size: contain !important;
|
||||
}
|
||||
.side-nav__brand span{
|
||||
display: none;
|
||||
}
|
||||
|
||||
5
lib/allure-2.22.0/plugins/jira-plugin/allure-plugin.yml
Normal file
5
lib/allure-2.22.0/plugins/jira-plugin/allure-plugin.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
id: jira
|
||||
name: Jira Plugin
|
||||
description: The plugin that adds support for Jira integration.
|
||||
extensions:
|
||||
- io.qameta.allure.jira.JiraExportPlugin
|
||||
BIN
lib/allure-2.22.0/plugins/jira-plugin/jira-plugin-2.22.0.jar
Normal file
BIN
lib/allure-2.22.0/plugins/jira-plugin/jira-plugin-2.22.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/okhttp-3.12.0.jar
Normal file
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/okhttp-3.12.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/okio-1.15.0.jar
Normal file
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/okio-1.15.0.jar
Normal file
Binary file not shown.
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/retrofit-2.6.1.jar
Normal file
BIN
lib/allure-2.22.0/plugins/jira-plugin/lib/retrofit-2.6.1.jar
Normal file
Binary file not shown.
@@ -0,0 +1,5 @@
|
||||
id: junit
|
||||
name: JUnit Plugin
|
||||
description: The plugin that adds support for results in JUnit.xml data format.
|
||||
extensions:
|
||||
- io.qameta.allure.junitxml.JunitXmlPlugin
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
id: packages
|
||||
name: Packages aggregator
|
||||
description: The aggregator adds packages tab to the report
|
||||
extensions:
|
||||
- io.qameta.allure.packages.PackagesPlugin
|
||||
jsFiles:
|
||||
- index.js
|
||||
Binary file not shown.
120
lib/allure-2.22.0/plugins/packages-plugin/static/index.js
Normal file
120
lib/allure-2.22.0/plugins/packages-plugin/static/index.js
Normal file
@@ -0,0 +1,120 @@
|
||||
'use strict';
|
||||
|
||||
allure.api.addTranslation('en', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Packages'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('ru', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Пакеты'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('zh', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: '包'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('de', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Pakete'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('nl', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Packages'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('he', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'חבילות'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('br', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Pacotes'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('ja', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'パッケージ'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('es', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Paquetes'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('kr', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: '패키지'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('fr', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Paquets'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('pl', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Pakiety'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTranslation('az', {
|
||||
tab: {
|
||||
packages: {
|
||||
name: 'Paketlər'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
allure.api.addTab('packages', {
|
||||
title: 'tab.packages.name', icon: 'fa fa-align-left',
|
||||
route: 'packages(/)(:testGroup)(/)(:testResult)(/)(:testResultTab)(/)',
|
||||
onEnter: (function (testGroup, testResult, testResultTab) {
|
||||
return new allure.components.TreeLayout({
|
||||
testGroup: testGroup,
|
||||
testResult: testResult,
|
||||
testResultTab: testResultTab,
|
||||
tabName: 'tab.packages.name',
|
||||
baseUrl: 'packages',
|
||||
url: 'data/packages.json'
|
||||
});
|
||||
})
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
id: screen-diff
|
||||
name: Screen diff
|
||||
description: Who cares about description by just-boris
|
||||
jsFiles:
|
||||
- index.js
|
||||
cssFiles:
|
||||
- styles.css
|
||||
Binary file not shown.
200
lib/allure-2.22.0/plugins/screen-diff-plugin/static/index.js
Normal file
200
lib/allure-2.22.0/plugins/screen-diff-plugin/static/index.js
Normal file
@@ -0,0 +1,200 @@
|
||||
(function () {
|
||||
var settings = allure.getPluginSettings('screen-diff', { diffType: 'diff' });
|
||||
|
||||
function renderImage(src) {
|
||||
return (
|
||||
'<div class="screen-diff__container">' +
|
||||
'<img class="screen-diff__image" src="' +
|
||||
src +
|
||||
'">' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
|
||||
function findImage(data, name) {
|
||||
if (data.testStage && data.testStage.attachments) {
|
||||
var matchedImage = data.testStage.attachments.filter(function (attachment) {
|
||||
return attachment.name === name;
|
||||
})[0];
|
||||
if (matchedImage) {
|
||||
return 'data/attachments/' + matchedImage.source;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function renderDiffContent(type, diffImage, actualImage, expectedImage) {
|
||||
if (type === 'diff') {
|
||||
if (diffImage) {
|
||||
return renderImage(diffImage);
|
||||
}
|
||||
}
|
||||
if (type === 'overlay' && expectedImage) {
|
||||
return (
|
||||
'<div class="screen-diff__overlay screen-diff__container">' +
|
||||
'<img class="screen-diff__image" src="' +
|
||||
expectedImage +
|
||||
'">' +
|
||||
'<div class="screen-diff__image-over">' +
|
||||
'<img class="screen-diff__image" src="' +
|
||||
actualImage +
|
||||
'">' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
if (actualImage) {
|
||||
return renderImage(actualImage);
|
||||
}
|
||||
return 'No diff data provided';
|
||||
}
|
||||
|
||||
var TestResultView = Backbone.Marionette.View.extend({
|
||||
regions: {
|
||||
subView: '.screen-diff-view',
|
||||
},
|
||||
template: function () {
|
||||
return '<div class="screen-diff-view"></div>';
|
||||
},
|
||||
onRender: function () {
|
||||
var data = this.model.toJSON();
|
||||
var testType = data.labels.filter(function (label) {
|
||||
return label.name === 'testType';
|
||||
})[0];
|
||||
var diffImage = findImage(data, 'diff');
|
||||
var actualImage = findImage(data, 'actual');
|
||||
var expectedImage = findImage(data, 'expected');
|
||||
if (!testType || testType.value !== 'screenshotDiff') {
|
||||
return;
|
||||
}
|
||||
this.showChildView(
|
||||
'subView',
|
||||
new ScreenDiffView({
|
||||
diffImage: diffImage,
|
||||
actualImage: actualImage,
|
||||
expectedImage: expectedImage,
|
||||
}),
|
||||
);
|
||||
},
|
||||
});
|
||||
var ErrorView = Backbone.Marionette.View.extend({
|
||||
templateContext: function () {
|
||||
return this.options;
|
||||
},
|
||||
template: function (data) {
|
||||
return '<pre class="screen-diff-error">' + data.error + '</pre>';
|
||||
},
|
||||
});
|
||||
var AttachmentView = Backbone.Marionette.View.extend({
|
||||
regions: {
|
||||
subView: '.screen-diff-view',
|
||||
},
|
||||
template: function () {
|
||||
return '<div class="screen-diff-view"></div>';
|
||||
},
|
||||
onRender: function () {
|
||||
jQuery
|
||||
.getJSON(this.options.sourceUrl)
|
||||
.then(this.renderScreenDiffView.bind(this), this.renderErrorView.bind(this));
|
||||
},
|
||||
renderErrorView: function (error) {
|
||||
console.log(error);
|
||||
this.showChildView(
|
||||
'subView',
|
||||
new ErrorView({
|
||||
error: error.statusText,
|
||||
}),
|
||||
);
|
||||
},
|
||||
renderScreenDiffView: function (data) {
|
||||
this.showChildView(
|
||||
'subView',
|
||||
new ScreenDiffView({
|
||||
diffImage: data.diff,
|
||||
actualImage: data.actual,
|
||||
expectedImage: data.expected,
|
||||
}),
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
var ScreenDiffView = Backbone.Marionette.View.extend({
|
||||
className: 'pane__section',
|
||||
events: function () {
|
||||
return {
|
||||
['click [name="screen-diff-type-' + this.cid + '"]']: 'onDiffTypeChange',
|
||||
'mousemove .screen-diff__overlay': 'onOverlayMove',
|
||||
};
|
||||
},
|
||||
initialize: function (options) {
|
||||
this.diffImage = options.diffImage;
|
||||
this.actualImage = options.actualImage;
|
||||
this.expectedImage = options.expectedImage;
|
||||
this.radioName = 'screen-diff-type-' + this.cid;
|
||||
},
|
||||
templateContext: function () {
|
||||
return {
|
||||
diffType: settings.get('diffType'),
|
||||
diffImage: this.diffImage,
|
||||
actualImage: this.actualImage,
|
||||
expectedImage: this.expectedImage,
|
||||
radioName: this.radioName,
|
||||
};
|
||||
},
|
||||
template: function (data) {
|
||||
if (!data.diffImage && !data.actualImage && !data.expectedImage) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return (
|
||||
'<h3 class="pane__section-title">Screen Diff</h3>' +
|
||||
'<div class="screen-diff__content">' +
|
||||
'<div class="screen-diff__switchers">' +
|
||||
'<label><input type="radio" name="' +
|
||||
data.radioName +
|
||||
'" value="diff"> Show diff</label>' +
|
||||
'<label><input type="radio" name="' +
|
||||
data.radioName +
|
||||
'" value="overlay"> Show overlay</label>' +
|
||||
'</div>' +
|
||||
renderDiffContent(
|
||||
data.diffType,
|
||||
data.diffImage,
|
||||
data.actualImage,
|
||||
data.expectedImage,
|
||||
) +
|
||||
'</div>'
|
||||
);
|
||||
},
|
||||
adjustImageSize: function (event) {
|
||||
var overImage = this.$(event.target);
|
||||
overImage.width(overImage.width());
|
||||
},
|
||||
onRender: function () {
|
||||
const diffType = settings.get('diffType');
|
||||
this.$('[name="' + this.radioName + '"][value="' + diffType + '"]').prop(
|
||||
'checked',
|
||||
true,
|
||||
);
|
||||
if (diffType === 'overlay') {
|
||||
this.$('.screen-diff__image-over img').on('load', this.adjustImageSize.bind(this));
|
||||
}
|
||||
},
|
||||
onOverlayMove: function (event) {
|
||||
var pageX = event.pageX;
|
||||
var containerScroll = this.$('.screen-diff__container').scrollLeft();
|
||||
var elementX = event.currentTarget.getBoundingClientRect().left;
|
||||
var delta = pageX - elementX + containerScroll;
|
||||
this.$('.screen-diff__image-over').width(delta);
|
||||
},
|
||||
onDiffTypeChange: function (event) {
|
||||
settings.save('diffType', event.target.value);
|
||||
this.render();
|
||||
},
|
||||
});
|
||||
allure.api.addTestResultBlock(TestResultView, { position: 'before' });
|
||||
allure.api.addAttachmentViewer('application/vnd.allure.image.diff', {
|
||||
View: AttachmentView,
|
||||
icon: 'fa fa-exchange',
|
||||
});
|
||||
})();
|
||||
@@ -0,0 +1,30 @@
|
||||
.screen-diff__switchers {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.screen-diff__switchers label + label {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.screen-diff__overlay {
|
||||
position: relative;
|
||||
cursor: col-resize;
|
||||
}
|
||||
|
||||
.screen-diff__container {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.screen-diff__image-over {
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
box-shadow: 2px 0 1px -1px #aaa;
|
||||
}
|
||||
|
||||
.screen-diff-error {
|
||||
color: #fd5a3e;
|
||||
}
|
||||
5
lib/allure-2.22.0/plugins/trx-plugin/allure-plugin.yml
Normal file
5
lib/allure-2.22.0/plugins/trx-plugin/allure-plugin.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
id: trx
|
||||
name: XUnit TRX Plugin
|
||||
description: The plugin that adds support for results TRX data format.
|
||||
extensions:
|
||||
- io.qameta.allure.trx.TrxPlugin
|
||||
BIN
lib/allure-2.22.0/plugins/trx-plugin/trx-plugin-2.22.0.jar
Normal file
BIN
lib/allure-2.22.0/plugins/trx-plugin/trx-plugin-2.22.0.jar
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user