TestLink安装配置手册
范围
本文仅作为安装和配置TestLink的参考文档。
本文的第一部分为TestLink的安装步骤,第二部分是TestLink的配置方法。
本文和其他相关文档可在TestLink网站上找到。您也可以在TestLink的论坛中寻求帮助
一般TestLink安装的步骤如下:
1.下载TestLink
2.解压文件
3.创建数据库
4.导入缺省数据
5.编辑配置文件
6. PHP文件扩展
7.登录TestLink
系统需求
要使TestLink正常运行,需要安装以下软件:
MySQL 4.1.x及以上
php 4.3.x及以上
WebServer(Apache 1.3.x或2.0.x及以上,IIS 3及以上,等等,更详细的信息请参见<php安装目录>/install.txt)
对于操作系统平台没有特别要求(TestLink已经在Linux和MS Win32平台上测试通过)
你也可以将数据库与TestLink分别安装在不同的服务器上,如下图:
安装步骤
在安装TestLink之前应先完成以下步骤:
1.安装环境:Webserver、php4和MySQL,安装方法参见这些应用软件的安装文档。
我是在winXP下安装的,webserver是IIS,PHP5.1.2,MySql的版本是5.0.18
IIS的安装就不多说了,下面主要讲讲PHP
从5.0开始,PHP对MySql的支持需要手动配置
将php_mysql.dll 和libmySQL.dll 文件拷贝到winnt\system32目录里,这两个文件可以在PHP安装目录里找到。
编辑<windows>目录下php.ini,将;extension=php_mysql.dll前面的";"去掉
编辑<windows>目录下php.ini,将;extension=php_mysql.dll前面的";"去掉
2.将TestLink的安装文件复制到服务器上。
3.解压缩Testlink的安装文件。
数据库安装
自动安装(略)
手工安装
创建MySQL数据库
CREATE DATABASE testlink CHARACTER SET utf8 COLLATE utf8_general_ci
创建数据表
# mysql -u <user> -p<password> <dbname> <<testlinkdir>/install/sql/testlink_create_tables.sql
导入缺省数据
# mysql -u <user> -p<password> <dbname> < <testlinkdir>/install/sql/testlink_create_default_data.sql
也可以使用mysql客户端工具进行创建数据库的操作。
在<testlinkdir>目录下创建config_db.inc.php文件
<?php // Automatically Generated by TestLink Installer
define('DB_TYPE', 'mysql');
define('DB_USER', 'root');
define('DB_PASS', 'root');
define('DB_HOST', 'localhost');
define('DB_NAME', 'testlink');
?>
配置
配置文件
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
<testlink installation directory>/config_db.inc.php - 包含访问数据库的所有配置参数。这个文件在安装或升级过程中产生。通常不必做手工修改
<testlink installation directory>/cfg/<bug_tracking_system>.cfg.php
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
***************<testlink installation directory>/config.inc.php 配置*****************************
必须修改的参数
DB_SUPPORTS_UTF8
MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;
MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。
DB_SUPPORTS_UTF8
MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;
MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。
/** [LOGGING] */
/** @see logging.inc.php for more information */
$g_log_path=TL_TEMP_PATH;
/** @see logging.inc.php for more information */
$g_log_path=TL_TEMP_PATH;
/** Default level of logging (NONE, ERROR, INFO, DEBUG, EXTENDED) */
$g_log_level='NONE';
$g_log_level='NONE';
可能需要修改的参数
TL_LOG_LEVEL_DEFAULT
日志记录的缺省级别,日志级别有(NONE、ERROR、INFO、DEBUG)。DEBUG级别只在开发或者与bug系统集成时使用
TL_LOG_PATH
日志文件的文件名和路径
日志文件的文件名和路径
// Display name and surename in all user lists
// $g_show_realname=TRUE; -> use the function format_username()
// to display user identification
// using $g_username_format
$g_show_realname = TRUE;//FALSE // 显示真实姓名
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first%'; 姓与名的排列
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first%'; 姓与名的排列
MAIN_PAGE_METRICS_ENABLED //1.7.4 已删除这个功能
这个参数控制矩阵表格是否显示在主页上,允许"TURE"和"FALSE"两个值
TL_INTERFACE_BUGS
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
TL_TREE_KIND
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
TL_IMPORT_LIMIT
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
$g_fckeditor_toolbar
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/)
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/)
TL_TPL_CHARSET
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
TL_DEFAULT_LOCALE
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
TL_COMPANY,TL_DOC_COPYRIGHT,TL_DOC_CONFIDENT
用于文档抬头,如果不用写抬头,就置这些参数为空。
用于文档抬头,如果不用写抬头,就置这些参数为空。
自定义参数
级联样式表
*****************************关联mantis设置*************************************
$g_interface_bugs='MANTIS';
在custom_config.inc.php文件下加入
$g_interface_bugs='MANTIS';
在cfg\mantis.cfg.php 设置mantis参数
在mantis中必须增加一个匿名用户!
config_defaults_inc.php
# --- anonymous login -----------
# Allow anonymous login
$g_allow_anonymous_login = ON;
$g_anonymous_account = 'dummy';
******************可以编写你自己的级联样式表改变TestLink的外观。****************************
你必须修改以下定义:
你必须修改以下定义:
define('TL_LOGIN_CSS','gui/css/tl_login.css'); - 登录、登出的CSS文件
define('TL_TESTLINK_CSS','gui/css/testlink.css'); - 主页的CSS文件
define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css'); - 用于测试报告
重要:CSS文件的路径是相对于<TestLink的安装目录>的路径,是相对路径
如果要使用自己的CSS文件,建议进行如下操作:
1. 在gui目录下创建一个新的目录,例如 "gui/css/my_css/"
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
// Original configuration
//define('TL_LOGIN_CSS','gui/css/tl_login.css');
//define('TL_TESTLINK_CSS','gui/css/testlink.css');
//define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
// Original configuration
//define('TL_LOGIN_CSS','gui/css/tl_login.css');
//define('TL_TESTLINK_CSS','gui/css/testlink.css');
//define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
******************************************************************************************
当产品、部件、分类、测试用例重名时的处理
当从一个已经复制一个产品、部件、分类、测试用例时,经常会发生重名的情况。
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
1. 产品名是否唯一
2. 产品下的部件名是否唯一
3. 部件下的分类名是否唯一
4. 分类下的测试用例名是否唯一
2. 产品下的部件名是否唯一
3. 部件下的分类名是否唯一
4. 分类下的测试用例名是否唯一
一旦置$g_check_names_for_duplicates=TRUE,你可以配置如果进行操作,如果发现重名的情况,就使用$g_action_on_duplicate_name,选项如下:
'allow_repeat':允许重名(可以和1.0.4、1.5.x兼容)
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
例如:
$g_action_on_duplicate_name='allow_repeat';
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
允许重复,并将当前时间以(年月日-时分秒)的格式做为原来的名字的前缀。
测试计划和产品的关联
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
$g_show_tp_without_prodid=TRUE;
你也可以通过在数据库中手工关联,以便使用以前的数据。
通过产品过滤测试计划
使用以下参数:
使用以下参数:
$g_ui_show_check_filter_tp_by_product
你可以:
允许用户通过界面来使能测试计划过滤功能。$g_ui_show_check_filter_tp_by_product = TRUE时,在测试计划之前显示了一个复选框。
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
关键字管理
如果不想为同一个产品创建相同的关键字:
如果不想为同一个产品创建相同的关键字:
$g_allow_duplicate_keywords=FALSE;
**************************testlink\cfg\const.inc.php*********************************
日期和时间本地化
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
$g_locales_date_format = array(
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
$g_locales_timestamp_format = array(
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
***************************************************************************************************
如果在上述数组中没有找到匹配的本地化格式,以下配置参数将被使用:$g_date_format 和 $g_timestamp_format
例如:
$g_date_format ="%d/%m/%Y";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
从需求生成测试用例
在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)
使用配置参数:$g_reg_cfg,你可以配置:
创建的部件的名字:$g_req_cfg->default_component_name="Component Created by Requirement - Auto";
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
$g_req_cfg->use_req_spec_as_category_name=TRUE;
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
$g_tpl['tcView']
$g_tpl['tcSearchView']
$g_tpl['tcEdit']
$g_tpl['tcNew']
$g_tpl['execSetResults']
允许创建新的模板,而且新的模板采用不同于原始TestLink模板的名字,以避免在下次升级过程中被覆盖
注意:不是所有的TestLink页面都可以进行这样的配置
标准配置如下:
$g_tpl['tcView'] = "tcView.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
FAQ
以下是常见问题,更多问题请查看TestLink的论坛
问1:我从老版本升级后,不能登录
答:你的原始数据库版本不支持不同字符集。从1.6版起,缺省的字符集是UTF-8。请在config.inc.php文件中置DB_SUPPORTS_UTF8=FALSE。
问1:我从老版本升级后,不能登录
答:你的原始数据库版本不支持不同字符集。从1.6版起,缺省的字符集是UTF-8。请在config.inc.php文件中置DB_SUPPORTS_UTF8=FALSE。
问2:登录页面显示Smarty error
答:Linux/unix 用户: 确认当前用户是否有临时目录的存取权限。缺省临时目录:<testlink_root>/gui/template_c/
***********************************************************
答:Linux/unix 用户: 确认当前用户是否有临时目录的存取权限。缺省临时目录:<testlink_root>/gui/template_c/
***********************************************************
2007-12-7
修改首页功能是在 gui\templates\login.tpl
下面是注册新用户
{* BUGID 695 *}
{if $g_user_self_signup eq true}
<a href="firstLogin.php">{lang_get s='new_user_q'}</a><br />
{/if}
下面是注册新用户
{* BUGID 695 *}
{if $g_user_self_signup eq true}
<a href="firstLogin.php">{lang_get s='new_user_q'}</a><br />
{/if}
链接testlink官网
{include file="inc_copyrightnotice.tpl"}
{include file="inc_copyrightnotice.tpl"}
// image for main menu item bullet (just filename)
$g_main_menu_item_bullet_img='arrow_org.gif';
//$g_main_menu_item_bullet_img='slide_gripper.gif';
下面是是否让每个产品有自己的颜色
// 'background' -> standard behaviour for 1.6.x you can have a different
// background colour for every test project.
//
// 'none' -> new behaviour no background color change
//
define('TL_TESTPROJECT_COLORING','background');
//define('TL_TESTPROJECT_COLORING','none');
下面是关于导出doc文件内容一些标识
// ----------------------------------------------------------------------------
/** [GENERATED DOCUMENTATION] */
// Constants used in printed documents.
define('TL_DOC_BASIC_CSS', TL_THEME_CSS_DIR . 'tl_doc_basic.css');
// ----------------------------------------------------------------------------
/** [GENERATED DOCUMENTATION] */
// Constants used in printed documents.
define('TL_DOC_BASIC_CSS', TL_THEME_CSS_DIR . 'tl_doc_basic.css');
// Leave them empty if you would not to use.
define('TL_DOC_COMPANY', "Testlink Development Team [configure using TL_DOC_COMPANY]");
define('TL_DOC_COMPANY_LOGO',
'<img alt="TestLink logo" title="configure using TL_DOC_COMPANY_LOGO" src="%BASE_HREF%' .
TL_THEME_IMG_DIR . '/company_logo.png" />');
define('TL_DOC_COPYRIGHT', 'copyright - Testlink Development Team [configure using TL_DOC_COPYRIGHT]');
define('TL_DOC_CONFIDENT', 'this document is not confidential [configure using TL_DOC_CONFIDENT]');
define('TL_DOC_COMPANY', "Testlink Development Team [configure using TL_DOC_COMPANY]");
define('TL_DOC_COMPANY_LOGO',
'<img alt="TestLink logo" title="configure using TL_DOC_COMPANY_LOGO" src="%BASE_HREF%' .
TL_THEME_IMG_DIR . '/company_logo.png" />');
define('TL_DOC_COPYRIGHT', 'copyright - Testlink Development Team [configure using TL_DOC_COPYRIGHT]');
define('TL_DOC_CONFIDENT', 'this document is not confidential [configure using TL_DOC_CONFIDENT]');
上传文件是否压缩,压缩类型
/**
* compression used within the repository
* TL_REPOSITORY_COMPRESSIONTYPE_NONE => no compression
* TL_REPOSITORY_COMPRESSIONTYPE_GZIP => gzip compression
*/
//$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_NONE;
$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_GZIP;
/**
* compression used within the repository
* TL_REPOSITORY_COMPRESSIONTYPE_NONE => no compression
* TL_REPOSITORY_COMPRESSIONTYPE_GZIP => gzip compression
*/
//$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_NONE;
$g_repositoryCompressionType = TL_REPOSITORY_COMPRESSIONTYPE_GZIP;
third_party\fckeditor\fckconfig.js 文本框菜单选项
/* 20070212 - Test Link configuration */
FCKConfig.ToolbarSets["TL_Medium"] = [
['Cut','Copy','Paste','Find','Replace','SelectAll','Link','Unlink','Anchor','Bold','Italic','Underline','OrderedList','UnorderedList','-','JustifyLeft','Image','Table','Rule'],
'/',
['FontName','FontSize','TextColor','BGColor']
] ;
FCKConfig.ToolbarSets["TL_Medium"] = [
['Cut','Copy','Paste','Find','Replace','SelectAll','Link','Unlink','Anchor','Bold','Italic','Underline','OrderedList','UnorderedList','-','JustifyLeft','Image','Table','Rule'],
'/',
['FontName','FontSize','TextColor','BGColor']
] ;
FCKConfig.ToolbarSets["TL_Medium_2"] = [
['Cut','Copy','Paste','Find','Replace','Link','Unlink','Bold','Italic','Underline','OrderedList','UnorderedList','-','Image','Table'],
'/',
['FontName','FontSize','TextColor','BGColor']
] ;
/* ----------------------------------------------------------------------------------- */
全部功能
FCKConfig.ToolbarSets["TL_Medium_2"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak','UniversalKey'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;
/* ----------------------------------------------------------------------------------- */
默认模版和最简模版
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['TextColor','BGColor'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
['Link','Unlink','Anchor'],
['Style','FontFormat','FontName','FontSize'],
['FitWindow','-','About']
] ;
['Cut','Copy','Paste','Find','Replace','Link','Unlink','Bold','Italic','Underline','OrderedList','UnorderedList','-','Image','Table'],
'/',
['FontName','FontSize','TextColor','BGColor']
] ;
/* ----------------------------------------------------------------------------------- */
全部功能
FCKConfig.ToolbarSets["TL_Medium_2"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak','UniversalKey'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Style','FontFormat','FontName','FontSize'],
['TextColor','BGColor'],
['About']
] ;
/* ----------------------------------------------------------------------------------- */
默认模版和最简模版
FCKConfig.ToolbarSets["Default"] = [
['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['TextColor','BGColor'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],
['Link','Unlink','Anchor'],
['Style','FontFormat','FontName','FontSize'],
['FitWindow','-','About']
] ;
FCKConfig.ToolbarSets["Basic"] = [
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']
] ;
上传文件使用的语言 文件同上 fckconfig.js
// The following value defines which File Browser connector and Quick Upload
// "uploader" to use. It is valid for the default implementaion and it is here
// just to make this configuration file cleaner.
// It is not possible to change this value using an external file or even
// inline when creating the editor instance. In that cases you must set the
// values of LinkBrowserURL, ImageBrowserURL and so on.
// Custom implementations should just ignore it.
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | php
在config.inc.php下设置 文本框菜单类型 TL_Medium TL_Medium_2(默认)
/** fckeditor Toolbar
* modify which icons will be available in html edit pages
* refer to fckeditor configuration file
**/
$g_fckeditor_toolbar = "TL_Medium";
自定义字体
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
字体大小
FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
/** fckeditor Toolbar
* modify which icons will be available in html edit pages
* refer to fckeditor configuration file
**/
$g_fckeditor_toolbar = "TL_Medium";
自定义字体
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
字体大小
FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ;
third_party\fckeditor\editor\filemanager\browser\default\connectors\php 下config.php开启上传功能
// SECURITY: You must explicitelly enable this "connector". (Set it to "true").
$Config['Enabled'] = true ; //开启
以下地址必须指向同一个目录
// Path to user files relative to the document root.
$Config['UserFilesPath'] = 'http://192.168.70.252/imtmp' ; //网址 二级目录
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\imtmp\\' ; 服务器路径
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\imtmp\\' ; 服务器路径
strings.txt 文件少几个翻译.1.7中没有需要覆盖
// gui/templates/inc_update.tpl
$TLS_info_failed_db_upd ="更新数据库失败!";
$TLS_info_failed_db_upd_details ="更新数据库失败!-- 详细信息:";
$TLS_invalid_query ="无效的查询";
$TLS_warning = "警告!!";
$TLS_was_success =" 已成功 ";
$TLS_Build = "构建";
$TLS_Keyword = "关键字";
$TLS_Priority = "优先级";
$TLS_Product = "产品";
$TLS_Requirement = "需求";
$TLS_Requirements = "需求";
$TLS_testcase = "测试用例";
$TLS_TestPlan = "测试计划";
$TLS_add = "增加";
$TLS_assigned = "被指派";
$TLS_delete = "删除";
$TLS_item = "项目";
$TLS_update = "更新";
$TLS_updated = "更新";
$TLS_user = "用户";
配置
配置文件
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
<testlink installation directory>/config.inc.php - 主要的配置文件,后面会做详细介绍
<testlink installation directory>/config_db.inc.php - 包含访问数据库的所有配置参数。这个文件在安装或升级过程中产生。通常不必做手工修改
<testlink installation directory>/cfg/<bug_tracking_system>.cfg.php
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。
必须修改的参数
DB_SUPPORTS_UTF8
MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;
MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。
可能需要修改的参数
TL_LOG_LEVEL_DEFAULT
日志记录的缺省级别,日志级别有(NONE、ERROR、INFO、DEBUG)。DEBUG级别只在开发或者与bug系统集成时使用
TL_LOG_PATH
日志文件的文件名和路径
日志文件的文件名和路径
MAIN_PAGE_METRICS_ENABLED
这个参数控制矩阵表格是否显示在主页上,允许"TURE"和"FALSE"两个值
这个参数控制矩阵表格是否显示在主页上,允许"TURE"和"FALSE"两个值
TL_INTERFACE_BUGS
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
设置testlink和缺陷跟踪系统的接口。允许的值为:"NO"、"BUGZILLA"、"MANTIS"
与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1
与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3
TL_TREE_KIND
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
这个参数用于配置testlink所使用的树形菜单,允许的值为"LAYERSMENU"、"JTREE"、"DTREE"
LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。
TL_IMPORT_LIMIT
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。
$g_fckeditor_toolbar
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/)
定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/)
TL_TPL_CHARSET
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数
TL_DEFAULT_LOCALE
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。
TL_COMPANY,TL_DOC_COPYRIGHT,TL_DOC_CONFIDENT
用于文档抬头,如果不用写抬头,就置这些参数为空。
用于文档抬头,如果不用写抬头,就置这些参数为空。
自定义参数
级联样式表
可以编写你自己的级联样式表改变TestLink的外观。
你必须修改以下定义:
可以编写你自己的级联样式表改变TestLink的外观。
你必须修改以下定义:
define('TL_LOGIN_CSS','gui/css/tl_login.css'); - 登录、登出的CSS文件
define('TL_TESTLINK_CSS','gui/css/testlink.css'); - 主页的CSS文件
define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css'); - 用于测试报告
重要:CSS文件的路径是相对于<TestLink的安装目录>的路径,是相对路径
如果要使用自己的CSS文件,建议进行如下操作:
1. 在gui目录下创建一个新的目录,例如 "gui/css/my_css/"
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
// Original configuration
//define('TL_LOGIN_CSS','gui/css/tl_login.css');
//define('TL_TESTLINK_CSS','gui/css/testlink.css');
//define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
2. 复制testlink原文件到新的目录
3. 按你的想法修改它们
4. 编辑config.inc.php文件:
// Original configuration
//define('TL_LOGIN_CSS','gui/css/tl_login.css');
//define('TL_TESTLINK_CSS','gui/css/testlink.css');
//define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
当产品、部件、分类、测试用例重名时的处理
当从一个已经复制一个产品、部件、分类、测试用例时,经常会发生重名的情况。
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
你可以配置如何处理复制:
如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查
1. 产品名是否唯一
2. 产品下的部件名是否唯一
3. 部件下的分类名是否唯一
4. 分类下的测试用例名是否唯一
2. 产品下的部件名是否唯一
3. 部件下的分类名是否唯一
4. 分类下的测试用例名是否唯一
一旦置$g_check_names_for_duplicates=TRUE,你可以配置如果进行操作,如果发现重名的情况,就使用$g_action_on_duplicate_name,选项如下:
'allow_repeat':允许重名(可以和1.0.4、1.5.x兼容)
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字
'block':返回一个错误
例如:
$g_action_on_duplicate_name='allow_repeat';
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());
允许重复,并将当前时间以(年月日-时分秒)的格式做为原来的名字的前缀。
测试计划和产品的关联
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:
$g_show_tp_without_prodid=TRUE;
你也可以通过在数据库中手工关联,以便使用以前的数据。
通过产品过滤测试计划
使用以下参数:
使用以下参数:
$g_ui_show_check_filter_tp_by_product
你可以:
允许用户通过界面来使能测试计划过滤功能。$g_ui_show_check_filter_tp_by_product = TRUE时,在测试计划之前显示了一个复选框。
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改
关键字管理
如果不想为同一个产品创建相同的关键字:
如果不想为同一个产品创建相同的关键字:
$g_allow_duplicate_keywords=FALSE;
日期和时间本地化
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
文件在cfg\const.inc.php里修改
设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.
文件在cfg\const.inc.php里修改
$g_locales_date_format = array(
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
'en_GB' => "%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' => "%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' => "%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' => "%d/%m/%Y" );
$g_locales_timestamp_format = array(
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
'en_GB' => "%d/%m/%Y %H:%M:%S",
'it_IT' => "%d/%m/%Y %H:%M:%S",
'es_AR' => "%d/%m/%Y %H:%M:%S",
'es_ES' => "%d/%m/%Y %H:%M:%S",
'de_DE' => "%d.%m.%Y %H:%M:%S",
'fr_FR' => "%d/%m/%Y %H:%M:%S",
'pt_BR' => "%d/%m/%Y %H:%M:%S", );
如果在上述数组中没有找到匹配的本地化格式,以下配置参数将被使用:$g_date_format 和 $g_timestamp_format
例如:
$g_date_format ="%d/%m/%Y";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
$g_timestamp_format = "%d/%m/%Y %H:%M:%S";
从需求生成测试用例
在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)
在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)
使用配置参数:$g_reg_cfg,你可以配置:
创建的部件的名字:$g_req_cfg->default_component_name="Component Created by Requirement - Auto";
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
创建的分类的名字:$g_req_cfg->default_category_name="TODO";
分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
分类的名字可以作如下配置:
$g_req_cfg->use_req_spec_as_category_name=TRUE;
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
将需求名称做为分类名称
$g_req_cfg->use_req_spec_as_category_name=FALSE;
那么$g_req_cfg->default_category_name将做为分类的名称
使用自己的Smarty模板(GUI定义)
使用自定义模板,要用到以下参数:$g_tpl
$g_tpl['tcView']
$g_tpl['tcSearchView']
$g_tpl['tcEdit']
$g_tpl['tcNew']
$g_tpl['execSetResults']
允许创建新的模板,而且新的模板采用不同于原始TestLink模板的名字,以避免在下次升级过程中被覆盖
注意:不是所有的TestLink页面都可以进行这样的配置
标准配置如下:
$g_tpl['tcView'] = "tcView.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
$g_tpl['tcSearchView'] = "tcSearchView.tpl";
$g_tpl['tcEdit'] = "tcEdit.tpl";
$g_tpl['tcNew'] = "tcNew.tpl";
$g_tpl['execSetResults'] = "execSetResults.tpl";
显示人员真实姓名和名字和姓的顺序
config.inc.php
// Display name and surename in all user lists
// $g_show_realname=TRUE; -> use the function format_username()
// to display user identification
// using $g_username_format
$g_show_realname = TRUE;//FALSE
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first%';
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first%';
设定显示用户真实名字和顺序
$g_show_realname = TRUE;//FALSE
$g_show_realname = TRUE;//FALSE
// used by function format_username()
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first% [%login%]';
// example: user ux555, real name= John Cook
// '%first% %last%' -> John Cook
// '%last%, %first%' -> John Cook
// '%first% %last% %login%' -> John Cook [ux555]
$g_username_format = '%last%%first% [%login%]';
上传图片文件夹路径设置
\testlink\third_party\fckeditor\editor\filemanager\browser\default\connectors\php\config.php
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/testlink/imtmp/' ;
\testlink\third_party\fckeditor\editor\filemanager\browser\default\connectors\php\config.php
// Path to user files relative to the document root.
$Config['UserFilesPath'] = '/testlink/imtmp/' ;
// Fill the following value it you prefer to specify the absolute path for the
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\testlink\\imtmp\\' ;
// user files directory. Usefull if you are using a virtual directory, symbolic
// link or alias. Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'.
// Attention: The above 'UserFilesPath' must point to the same directory.
$Config['UserFilesAbsolutePath'] = 'C:\\www\\testlink\\imtmp\\' ;
修改testlink角色英文名称为中文在数据库中 roles表中
读取mantis bug摘要乱码 关闭摘要显示 \lib\bugtracking\int_mantis.php
/**if ($result)
{
$summary = $this->m_dbConnection->fetch_array($result);
// 20070302 - BUGID - on MS-SQL fetch_array() does not returns numeric indexes, then
// only choice is accessing my field name (IMHO better)
if ($summary)
$summary = $summary['summary'];
else
$summary = null;
}
return $summary;
**/
注释此行
// only choice is accessing my field name (IMHO better)
if ($summary)
$summary = $summary['summary'];
else
$summary = null;
}
return $summary;
**/
注释此行
chenxu
2008-10-20
没有评论:
发表评论