letmehappy 发表于 2006-9-11 17:19:02

在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 编辑 ]

lj1981727 发表于 2006-9-12 21:51:19

不知道你用的是什么版本的,我以前在脚本中 sub wizardfieldcust_add中作过默认值的修改 ,
比如说新增一个bug,让其默认状态是 book而不是new

你把你的代码加到sub wizardfieldcust_add
                              if user.isingrout("" ),
你要加到你需要填加的那个群组里
我已经在我机子上TD8.0上试过了,加到sub wizardfieldcust_add中应该没有问题

[ 本帖最后由 lj1981727 于 2006-9-12 22:09 编辑 ]

chellcy 发表于 2006-9-13 11:39:20

我在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) & ":"
====================

这是为什么呢?

letmehappy 发表于 2006-9-13 13:29:22

谢谢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,你可以试一下.

chellcy 发表于 2006-9-13 13:58:52

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 编辑 ]

letmehappy 发表于 2006-9-13 14:08:28

原理是一样的,只要在Sub Defects_Bug_New中增加:
Fields("字段名").Value = 你想要的值

就可以了.

chellcy 发表于 2006-9-13 14:28:49

感谢楼主,我们还是需要一些有编程经验的人呀!

letmehappy 发表于 2006-9-13 15:41:51

有编程经验当然最好了,我组里有一个测试工程师原来是做开发的,他的测试质量比其他没做过开发的测试要好,而且能开发一些小工具和一些实用的脚本,节省了不少时间.

hadywei 发表于 2006-9-13 17:39:42

我想问一下在描述里写死的那些项可以是中文吗?

hadywei 发表于 2006-9-13 17:49:43

嘿嘿 ,我尝试过了,是可以支持中文的,谢谢了,这个方法真的很棒

chenxi01032005 发表于 2006-9-14 11:25:01

原帖由 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.

hadywei 发表于 2006-9-14 11:54:46

我觉得bug_field是td中自定义的变量名

decset 发表于 2007-7-10 12:13:35

同志们,你们给字段(lookup list类型)指定默认值。直接用.value=所要的值,这样之后还能改变所以的值吗,我这么做之后,值就被写死啦?不能改了

zuoye 发表于 2007-7-18 15:41:09

可以啊,很实用,我刚刚就是这么做的

decset 发表于 2007-8-21 16:04:02

还是有问题的,按照大家的写法用value="默认值"这样是没有问题的,但是我遇到的问题是,当我的状态等于某一值的时候,另一个lookup list选项的值为一默认值这样要怎么实现,如果我用了
if Bug_Fields("BG_status").Value ="CLOSE" then
    Bug_Fields.Field("BG_CLOSING_DATE").Value=date   
end if

这样我的时间就被写死为当天了,想改也不能改。我想要的效果是,记录关闭的时候能先默认为当天,但是如果我要改变的话也允许。这样是否能实现呢。

seiyababy 发表于 2007-9-18 17:17:26

学习中   试试

yangbohustwb 发表于 2007-9-20 00:14:11

sdlkfj2

lvsh11 发表于 2008-3-25 10:13:50

感谢!!!!!!:)

木木妹 发表于 2008-3-27 16:11:59

楼主讲的是在TD自带的上面修改,一般我们不会修改,因为默认的样例不是我们要用的项目。具体项目下应
首先在你要修改的模块比如NEW_BUG前定义field
例子
dim field
sub new_bug
field=BUG_FIELD
field("自定义").value="默认值"

yegj 发表于 2008-4-1 11:17:32

我试了一下,不需要在脚本前自定义变量也可以。
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
查看完整版本: 在TD中如何修改脚本,使新增Bug的描述中有预先填写好的内容?