{% extends "base.html" %} {% from "dashboard/_macros.html" import stamp, num, hbars, needs_json %} {% block title %}自动化覆盖 · tuner workbench{% endblock %} {% block body %} {% set c = dash.counts or {} %}

自动化覆盖

{{ stamp(dash) }}
{{ num(c.api_objects) }}API 对象
{{ num(c.page_objects) }}UI 页面对象
{{ num(c.action_words) }}动作词
{{ num(c.db_seeds) }}db_seed
{{ num(c.bdd_features) }} / {{ num(c.bdd_scenarios) }}BDD feature / 场景
{{ num(c.pytest_files) }} / {{ num(c.pytest_tests) }}pytest 文件 / 用例
{{ needs_json(dash) }} {% if section and not section.error %}

API 对象按分组

{{ hbars(section.api_objects.by_group) }}

API 对象按方法

{{ hbars(section.api_objects.by_method) }}

动作词按类别

{% for cat, n in section.action_words.by_category.items() %} {% endfor %}
{{ cat }}{{ n }}

db_seed

{% set seeds = section.action_words['items']|selectattr('category', 'equalto', 'db_seed')|list %} {% if seeds %} {% for w in seeds %} {% endfor %}
word_id名称文件
{{ w.id }}{{ w.name }}{{ w.path }}
{% else %}

暂无

{% endif %}

UI 页面对象

{% if section.page_objects['items'] %} {% for p in section.page_objects['items'] %} {% endfor %}
page_idapp文件
{{ p.page_id }}{{ p.app or "—" }}{{ p.path }}
{% else %}

暂无

{% endif %}

BDD feature

{% if section.bdd['items'] %} {% for f in section.bdd['items'] %} {% endfor %}
feature场景标签文件
{{ f.name }}{{ f.scenarios }}{{ f.tags|join(" ") }}{{ f.path }}
{% else %}

暂无

{% endif %}

pytest

{% if section.pytest['items'] %} {% for p in section.pytest['items'] %} {% endfor %}
文件用例
{{ p.path }}{{ p.tests }}
{% else %}

暂无

{% endif %} {% if section.truncated %}

扫描到上限被截断:{{ section.truncated|join("、") }}

{% endif %} {% endif %} {% endblock %}