在TD中如何修改脚本,使新增Bug的描述中有预先填写好的内容?
在TD中新增一条bug时,bug的描述默认是空的,如果要使bug的描述中有预先填写好的内容(如前置条件,实际结果,预期结果等),怎样修改脚本呢?我在TD自带的project(Test_Director_Demo)中配置成功,相关内容如下:
1 进入Customize->Set up workflow->Script editor
2 这个项目,系统自建了一个sub:AddDefect_SetDefaultValues,我在这个sub中新增了一行:
Fields("BG_DESCRIPTION").Value = "" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & ":"& Chr(13) & Chr(10) & ":"
注:在Defects_Bug_New中调用了AddDefect_SetDefaultValues
3 保存退出
4 进入TD,新增一个bug,bug描述中自带了新增的内容:
1.
2.
3.
:
:
这达到了我的目的,这样所有测试人员在填写bug时有一个统一的格式,不会一人一个样.
现在问题是:我在自己新建的一个project中,使用同样的代码无法达到目的.新增的project没有AddDefect_SetDefaultValues这个sub,我在Defects_Bug_New这个sub中直接增加了Fields("BG_DESCRIPTION").Value这条语句,想让新增一个bug时自动在描述中添加想要的内容.保存退出后,进入TD,新增一个bug,描述中没有想要的内容.
想请教大家,我在新建的project中这样处理是在哪里出错了?
[ 本帖最后由 letmehappy 于 2006-9-11 17:45 编辑 ] 不知道你用的是什么版本的,我以前在脚本中 sub wizardfieldcust_add中作过默认值的修改 ,
比如说新增一个bug,让其默认状态是 book而不是new
你把你的代码加到sub wizardfieldcust_add
if user.isingrout("" ),
你要加到你需要填加的那个群组里
我已经在我机子上TD8.0上试过了,加到sub wizardfieldcust_add中应该没有问题
[ 本帖最后由 lj1981727 于 2006-9-12 22:09 编辑 ] 我在TD8.0上
sub wizardfieldcust_add
if user.isingrout("指定角色" )中加入楼主的代码
Fields("BG_DESCRIPTION").Value = "" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & ":"& Chr(13) & Chr(10) & ":"
保存,退出,再次登陆时提交defect时报错:
Error at Line 972, (character 9)
对象不支持此属性或方法: 'Fields(...).Value':
====================
SetFieldApp "BG_USER_05", False, False, 0, 42
==> Fields("BG_DESCRIPTION").Value = "" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & ":"& Chr(13) & Chr(10) & ":"
====================
这是为什么呢? 谢谢lj1981727 的回复,我用的TD也是8.0
这个问题我后来参考了TD自带的那个project,发现原来所用的方法基本上是对的,只是因为有个变量没有定义,所以不起作用.正确的方法如下:
在新建的Project中,脚本的最上面定义一个变量:
Dim Fields
然后修改Sub Defects_Bug_New:
==========
Sub Defects_Bug_New
Fields = Bug_Fields
Fields("BG_DESCRIPTION").Value = "" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & ":"& Chr(13) & Chr(10) & ":"
On Error Resume Next
On Error GoTo 0
End Sub
==========
这样就可以了,我在TD 8.0验证通过
sub wizardfieldcust_add中应该可以详细得定义各个组的一些参数,不过如果只是一些简单的修改,在Sub Defects_Bug_New直接添加应该可以了.
chellcy,你可以试一下. ok,成功。谢谢~~~
我现在正在琢磨如何给字段(lookup list类型)指定默认值。
按照你的方法,在脚本开始定义Dim Defaltbugstatus ,
然后在Sub Defects_Bug_New 处添加
Defaltbugstatus = Bug_Fields
Defaltbugstatus("BG_STATUS").Value = "01新问题"
On Error Resume Next
On Error GoTo 0
成功耶!谢谢啦~~~
[ 本帖最后由 chellcy 于 2006-9-13 14:15 编辑 ] 原理是一样的,只要在Sub Defects_Bug_New中增加:
Fields("字段名").Value = 你想要的值
就可以了. 感谢楼主,我们还是需要一些有编程经验的人呀! 有编程经验当然最好了,我组里有一个测试工程师原来是做开发的,他的测试质量比其他没做过开发的测试要好,而且能开发一些小工具和一些实用的脚本,节省了不少时间. 我想问一下在描述里写死的那些项可以是中文吗? 嘿嘿 ,我尝试过了,是可以支持中文的,谢谢了,这个方法真的很棒 原帖由 chellcy 于 2006-9-13 13:58 发表
ok,成功。谢谢~~~
我现在正在琢磨如何给字段(lookup list类型)指定默认值。
按照你的方法,在脚本开始定义Dim Defaltbugstatus ,
然后在Sub Defects_Bug_New 处添加
Defaltbugstatus = Bug_Fields
De ...
不懂的是:
为什么给“Defaltbugstatus”赋值的是Bug_Fields?
Bug_Fields是怎么来的?
thx. 我觉得bug_field是td中自定义的变量名 同志们,你们给字段(lookup list类型)指定默认值。直接用.value=所要的值,这样之后还能改变所以的值吗,我这么做之后,值就被写死啦?不能改了 可以啊,很实用,我刚刚就是这么做的 还是有问题的,按照大家的写法用value="默认值"这样是没有问题的,但是我遇到的问题是,当我的状态等于某一值的时候,另一个lookup list选项的值为一默认值这样要怎么实现,如果我用了
if Bug_Fields("BG_status").Value ="CLOSE" then
Bug_Fields.Field("BG_CLOSING_DATE").Value=date
end if
这样我的时间就被写死为当天了,想改也不能改。我想要的效果是,记录关闭的时候能先默认为当天,但是如果我要改变的话也允许。这样是否能实现呢。 学习中 试试 sdlkfj2 感谢!!!!!!:) 楼主讲的是在TD自带的上面修改,一般我们不会修改,因为默认的样例不是我们要用的项目。具体项目下应
首先在你要修改的模块比如NEW_BUG前定义field
例子
dim field
sub new_bug
field=BUG_FIELD
field("自定义").value="默认值" 我试了一下,不需要在脚本前自定义变量也可以。
Sub Defects_Bug_New
Bug_Fields("BG_DESCRIPTION").Value = "" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "" & Chr(13) & Chr(10) & "1." & Chr(13) & Chr(10) & "2." & Chr(13) & Chr(10) & "3." & Chr(13) & Chr(10) & ":"& Chr(13) & Chr(10) & ":"
On Error Resume Next
On Error GoTo 0
End Sub
页:
[1]
2