- 引言
- 本书涉及的内容
- 第 1 部分 Python 开发入门
- 第 1 章 Python 入门
- 第 2 章 开发 Web 应用
- 第 3 章 Python 项目的结构与包的创建
- 第 4 章 面向团队开发的工具
- 第 5 章 项目管理与审查
- 第 6 章 用 Mercurial 管理源码
- 第 7 章 完备文档的基础
- 第 8 章 模块分割设计与单元测试
- 第 9 章 Python 封装及其运用
- 第 10 章 用 Jenkins 持续集成
- 第 11 章 环境搭建与部署的自动化
- 第 12 章 应用的性能改善
- 第 13 章 让测试为我们服务
- 第 14 章 轻松使用 Django
- 第 15 章 方便好用的 Python 模块
- 附录 A VirtualBox 的设置
- 附录 B OS(Ubuntu)的设置
5.2 问题模板
我们在 5.1 节了解到,新建问题时要在“描述”一栏描述这个问题想要实现的内容。不过真到新建问题时,我们往往不知道该写些什么。另外,一旦问题的描述不够充分,我们就要花费很多时间在留言交流上。
因此,为了防止问题的描述出现遗漏,团队应该事先统一好需要描述的项目。Redmine 有一个插件叫问题模板,它能生成统一的格式(模板)并把该格式反映到问题中。
这里我们将学习问题模板插件的使用方法,然后给各位看一个实际的例子。
5.2.1 安装插件
要想给 Redmine 的问题设置模板,需要安装 Issue Template Plugin2 。
2 http://www.r-labs.org/projects/issue-template/
安装插件的流程如 LIST 5.1 所示。
LIST 5.1 安装Issue Template Plugin
$ wget https://bitbucket.org/akiko_pusu/redmine_issue_templates/downloads/redmine_issue_templates-0.0.9.zip $ sudo mkdir /usr/share/redmine/plugins $ unzip redmine_issue_templates-0.0.9.zip -d /usr/share/redmine/plugins/ $ cd /usr/share/redmine $ sudo chown -R www-data:www-data plugins $ sudo cp -pr plugins/redmine_issue_templates/assets public/plugin_assets/redmine_issue_templates $ sudo rake redmine:plugins:migrate RAILS_ENV=production $ sudo bundle install $ sudo service apache2 reload
如果插件安装正确,插件管理界面会显示 Redmine Issue Templates plugin,管理菜单中将多一条 Global Issue Templates(全局问题模板)(图 5.3)。
图 5.3 Redmine 的插件管理界面
5.2.2 问题模板的使用方法
下面我们来学习问题的设置和使用方法。
◉ 启用问题模板功能
打开项目的“配置”→“模块”界面,勾选“问题模板”,保存后即可对该项目开启问题模板功能。开启后,配置界面上将多出“问题模板”标签页。
另外,我们在这里更改全部设置,以便今后创建的所有项目都可以直接使用问题模板功能。打开管理界面的“配置”→“项目”界面,在“新建项目默认启用的模块”中勾选“问题模板”并保存(图 5.4)。
图 5.4 管理界面的项目配置
◉ 创建模板
在配置界面选中“问题模板”选项卡,点击“新建”进入模板添加界面(图 5.5)。
图 5.5 添加问题模板的界面
请按照下表设置各输入项目。
项目 | 说明 |
模板名称 | 在这里指定问题模板的名称。我们规范为“用于〇〇的模板” |
跟踪标签 | 在这里指定应用模板的跟踪标签的种类(功能、错误、支持等) |
问题标题 | 在这里指定标题的模板 |
模板内容 | 在这里输入问题内容模板。推荐使用标题或逐条列记,这种模板更直观易用 |
批注 | 不需要填写 |
默认值 | 勾选之后,选择该类问题的跟踪标签时会自动套用当前模板 |
启用 | 勾选之后,该模板才会生效 |
Enabled sharing with project tree. | 勾选之后,子项目也可以使用该模板 |
◉ 套用模板
问题模板的使用方法很简单,只要在新建问题界面中选择模板就行了。
选择跟踪标签(问题类别)后,界面上会列表显示该跟踪标签下有效的问题模板。此处只要选择了任意一个模板,“主题”“描述”就会被自动填充。随后我们只需要按照通常创建问题的步骤,对内容作一些修改即可(图 5.6)。
图 5.6 选择问题模板
5.2.3 Global Issue Templates
问题模板很方便,但当我们有一个所有项目通用的模板时,如果要一个项目一个项目地去设置这个模板,那可不是一般的麻烦。这种时候,我们可以使用 Global Issue Templates 功能,创建一个所有项目通用的模板。
创建 Global Issue Templates 时,先选择 Redmine 管理界面中的 Global Issue Templates 菜单,然后点击“新建模板”打开如图 5.7 所示的界面。这里的基本输入项目与问题模板相同,不同点则是下面多出了“项目”区域。这里会显示 Redmine 上的所有项目,我们在哪个项目前面打上勾并保存,该模板就会对哪个项目生效。
图 5.7 添加 Global Issue Templates 的界面
另外,如果我们新建了项目,Global Issue Templates 并不会自动对该项目生效。所以当我们创建了新项目时,需要打开 Global Issue Templates 的编辑界面,勾选新项目并重新保存。
5.2.4 问题模板示例
这里,我们为每个跟踪标签各准备了一个问题模板的范例。
我们用的格式是 reStructuredText,如果各位使用的是 Redmine 默认的 Textile,请自行作相应替换。
◉ 功能
与添加功能相关的问题(LIST 5.2)。描述要实现何种功能。
LIST 5.2 功能问题的模板
目的 ==== - 实现该功能后成品能完成什么工作,将大致预想写在这里 输入输出 ====== - 记录输入的值和输出的结果 相关功能、影响范围 ================== - 需要进行回归测试的地方 - 生成该功能所需数据的功能(可添加与对象问题的关联) - 使用该功能所生成数据的功能(可添加与对象问题的关联) 安全 ============ - 如有安全相关问题(权限等),则将相应内容写在这里 演示方法 ======== - 记录 URL 或其他能轻松查看该功能的操作流程
◉ 错误
用于报告 Bug 的问题(LIST 5.3)。将试验等过程中发现的 Bug 制作成问题,分配给相应负责人。
LIST 5.3 错误问题的模板
现象 ==== - 描述该Bug 的现象 流程 ==== - 描述出现该Bug 的操作流程 预期结果 ============ - 描述原本应该出现的结果 环境 ==== - 描述试验环境 示例 - OS :Mac OS X 10.10 - 浏览器:IE11 - 执行用户:admin - 出现Bug 的URL :https://staging.example.com/very-critical-feature 相关信息 ======== - 描述错误日志、消息Sentry 的URL 等
◉ 任务
关于各种作业的问题(LIST 5.4)。
LIST 5.4 任务问题的模板
目的 ==== - 执行该任务的目的 内容 ==== - 具体要实施的内容
◉ 需求讨论
用来讨论需求的问题。确定需求后关闭这个问题,然后新建功能问题,并与之相关联。
LIST 5.5 需求讨论问题的模板(LIST 5.5)
目的 ====- 当前讨论的需求要达成何种预期。 需求方案 ====== - 记录已有的需求方案,有多种时可记录多个方案 - 同时记录优点和缺点 总结 ====== - 推荐的方案以及推荐理由 演示方法 ======== - 记录URL 或其他能轻松查看该方案的操作流程
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论