SQL存储过程测试(4)——从T-SQL测试套件里把测试结果直接写入文本文件

发表于:2009-11-11 15:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:igoone    来源:51Testing软件测试博客

  注解

  运行T-SQL测试套件的时候,有好几种方法可以用来保存测试结果。如果把测试结果保存成文本文件,常用的技术是先把所有测试结果都保存到一个SQL表里,然后把结果转换成一个文件文件。另一种做法是,在T-SQL套件里直接把测试结果写入文本文件。

  上述方案使用了FileSystemObject类的OpenTextFile()方法,这个方案正常工作的前提是要写入的文件已经存在。作为替代,也可以使用CreateTextFile()方法:

declare @fsoHandle int,@fileID int

exec sp_OACreate 'Scripting.FileSystemObject',@fsoHandle out

exec sp_OAMethod @fsohandle,'CreateTextFile',@fileID out,

    'C:\pathToResults\Results.txt',0,0

——主测试循环

if(@result = @expected)

    exec sp_OAMethod @fileID,'WriteLine',null,'Pass'

else

    exec sp_OAMethod @fileID,'WriteLine',null,'FAIL'

——主测试循环结束

exec sp_OADestroy @fileID

exec sp_OADestroy @fsoHandle

  CreateTextFile()方法接受一个必填的文件名参数以及两个可选的布尔值。

  因为SQL本身并不支持布尔数据类型,因些要使用整数类型0表示False,1表示True。第一个可选的布尔值指定覆盖标识,如果该值为True/1则意味着覆盖已存在的同名文件。如果该值为False/0则意味着不覆盖已存在的同名文件。第二个可选的布尔参数是编码标识。其值为true/1意思是以 Unicode编码方式创建创建这个文件。其值为false/0意思是ASCII编码方式创建这个文件。这两个参数的默认值都是false/0,或者换句话说,默认情况下都不覆盖已有文件以及使用ASCII编码方式。

  除了从T-SQL把数据写入文本文件,还可以采用这种方法读入文本数据:

declare @fsoHandle int ,@fileID,int

declare @eof int

declare @line varchar(1000)

exec sp_OACreate 'Scripting.FileSystemObject',@fsoHandle out

exec sp_OAMethod @fsohandle,'OpenTextFile',@fileID out,

    'C:\pathToResults\Results.txt',1,1

set @eof = 0

while @eof = 0

begin

    exec sp_OAMethod @fileID,'ReadLine',@line out

    print @line

    exec sp_OAM3thod @fileID,'AtEndOfStream',@eof out

end

exec sp_OADestroy @fileID

exec sp_OADestroy @fsoHandle

相关阅读:

SQL存储过程测试(3)——创建T-SQL测试套件

SQL存储过程测试(2)——使用BCP工具导入测试用例数据

SQL存储过程测试(1)——创建测试用例以及测试结果存储

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号