很久以来就有的想法,给我们的产品开发搭建一个集成的自动测试框架。想达到的目标有:
自动从代码库抓取代码 自动Build、制作安装包、并收集Debug Symbols 自动发布 自动安装到目标设备 自动运行测试用例、存储测试结果 测试用例和测试结果有点类似于Continuous Integration的概念但不完全相同。这么一个系统自己开发显然要花费非常多时间,最好的方法是利用现有的工具来搭建。一番研究下来,发现Trac非常符合我的要求:免费、开源、跨平台、轻量级、高度可扩展,等等,这些特点我都非常喜欢。这篇文章记录我在安装、配置基于Trac的集成框架的一些经验。在Python、 Trac方面我都接触不久,理解有限,如果不妥之处请各位指出。
1.安装Trac
我对Python、Trac、Apache、SVN这些开源开发工具都是初次接触,为降低难度,从一开始就没打算在Linux安装,但还是走了不少弯路。开始时尝试用CollabNet SVN Server+Python+Trac+Apache,在和Trac集成时由于python和Apache的svn库版本不一致放弃了。后来改用 Visual SVN Server+Trac,方便很多。Visual SVN Server安装简单,集成了SVN和Apache,而且有基于GUI的管理界面。
安装Visual SVN Server。最新版本可在这里下载,我用的是1.6.3,集成了Apache 2.2.9和SVN 1.1.5。安装十分简单,在Custom Setup页面要做一些选择,其余的一路Next。我的选择是: 安装路径:默认 代码仓库路径:D:"repos 服务端口:https 8443 验证方式:SVN验证 安装完成启动Visual SVN Server管理界面,为项目建立用户名和创建代码仓库: Repositories上右键“Create New Repository...",输入项目名VMCEPC,勾上"Create default structure"。 Users上右键"Create User...",创建用户名admin。现在SVN Server就搭建好了,用Web浏览器测试一下是否成功,在地址栏输入:https://localhost:8443/svn/。注意最后的斜杠是必要的。另外forefox 3.0.x似乎有点bug,不能为自制证书”add exception“,从因此如果SVN Server启用了https,在firefox 3.0.x中是不能正常连接的。IE和firefox 3.1都没问题。
安装Trac 0.11。由于没有装Python,Trac主页上介绍的安装方法不适用。好在Visual SVN Server网站提供了一个work around,详细步骤看这里: 在这里下载Trac 0.11 for Visual SVN Server 把安装包里的trac目录加压到C:\Program Files\VisualSVN Server\ 创建目录d:\trac 为VMCEPC项目初始化trac环境,除了"Path to repository"要明确指定,其余可以全部用默认设置,这些设置以后都可以改。在DOS窗口运行命令: "C:\Program Files\VisualSVN Server\trac\trac-admin.bat" d:\trac\vmcepc initenv Project Name: VMCEPC Path to repository: d:\repos\vmcepc 把admin加为trac admin,在DOS窗口运行命令: "C:\Program Files\VisualSVN Server\trac\trac-admin.bat" d:\trac\vmcepc permission add admin TRAC_ADMIN 编辑C:\Program Files\VisualSVN Server\httpd-wrapper.bat,在文件最开始处添加一行:set PYTHONHOME=%~dp0\Trac\python 在C:\Program Files\VisualSVN Server\conf\httpd-custom.conf中加入这些设置: LoadModule python_module "trac/python/mod_python_so.pyd"
这样trac server就搭好了。在浏览器中输入地址:https://localhost:8443/trac/。如果看到有"Available Projects"列出就说明成功了。如果有错误,可以打开Windows的Event Viewer查看VisualSVN Server的日志信息。
另外如果想为多个项目配置trac,可以做一个通用的配置文件trac.ini,放到d:\trac\trac.ini,然后在具体项目的trac.ini文件里引用它:
# -*- coding: utf-8 -*-