亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 >
Ruby元編程在測(cè)試中的一點(diǎn)小實(shí)踐
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/5/28 10:20:28 ] 推薦標(biāo)簽:

  因?yàn)楣咀詣?dòng)化測(cè)試框架的一些要求,我們的ruby測(cè)試腳本(使用Test Unit)以如下形式組織:

  authentication(目錄名為feature名字)

  - 100_signature.rb (100為測(cè)試用例在TestLink對(duì)應(yīng)的ID,后面為簡(jiǎn)單描述)

  - 101_signature_with_invalid_key.rb

  在每個(gè)測(cè)試腳本中,測(cè)試類根據(jù)ID命名,比如100_xxx.rb中code如下:

1 class TC_100 < Test::Unit::TestCase
2   # …
3 end

  這種組織形式給我們的日常執(zhí)行帶來(lái)了一些小麻煩,比如想執(zhí)行一個(gè)folder下的所有測(cè)試用例,只有采用以下兩種方式:

  1)寫個(gè)shell腳本,然后執(zhí)行完后必須從很長(zhǎng)的log中自己手工找出執(zhí)行狀況。

  2)維護(hù)如下文件管理所有用例:

require 'test/unit/testsuite'
 require 'test/unit/ui/console/testrunner'
 
 require 'authentication/100_xxx.rb'
 require 'authentication/101_xxx.rb'
 
 class Suites << Test::Unit::TestSuite
   def self.suit
     suites = self.new('Suites')
     suites << TC_100.suite
     suites << TC_101.suite
   end
 end
 
 Test::Unit::UI::Console::TestRunner.run(Suites)

  但是這個(gè)方法有個(gè)問(wèn)題,必須長(zhǎng)期手工維護(hù)。比如每次添加新的用例必須手動(dòng)修改此文件以保持一致。

  Ruby語(yǔ)言是強(qiáng)大的,靈活的,我們可以利用元編程的一些基本特性比如eval來(lái)輕松解決這個(gè)問(wèn)題。在解決方案2的基礎(chǔ)上新代碼如下:

require 'test/unit/testsuite'
 require 'test/unit/ui/console/testrunner'
 
 path = ARGV[0]    # 測(cè)試腳本所在的目錄
 $suite_names = []
 
 Dir.foreach(path) do |filename|
   if /d+_/ =~ filename    # 我們的命名規(guī)范是數(shù)字開頭,下劃線然后是簡(jiǎn)單描述。
     require "#{path}/#{filename}"
     testcase_id = filename.split('_')[0]
     $suite_names << "TC_#{testcase_id}"
   end
 end
 
 class Suites << Test::Unit::TestSuite
   def self.suit
     suites = self.new('Suites')
     suite_names.each do |suite_name|
       suites << eval("::#{suite_name}.suite")    # 這段是關(guān)鍵,利用eval等于動(dòng)態(tài)的插入了一段代碼。
     end
   end
 end
 
 Test::Unit::UI::Console::TestRunner.run(Suites)

  直接運(yùn)行"ruby run.rb authentication/"能運(yùn)行該目錄下所有腳本并得到Test-Unit的標(biāo)準(zhǔn)報(bào)告。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 最近中文字幕完整视频大全版 | 91国内外精品自在线播放 | 一级毛片视频播放 | 一级特黄aa大片免费播放视频 | 丝袜美腿精尽福利网站 | 国产大陆精品另类xxxx | 一个人看的www视频免费 | 日日碰狠狠添天天爽爽爽 | 国产日韩精品欧美一区喷水 | 在线观看黄日本高清视频 | 神马啪啪 | 天堂免费在线视频 | 国产精品视频第一区二区三区 | 99久在线精品99re6视频 | 亚洲无线码一区在线观看 | 另类视频欧美 | 免费黄色小网站 | 久久精品2019www中文 | 日韩2页| 亚洲最大看欧美片网站 | 伊人久久大香线蕉综合网站 | 中文字幕亚洲区 | 亚洲国产伦理 | 一级黄色片免费 | 国产日韩在线播放 | 国产专区精品 | 精品400部自拍视频在线播放 | 国产bbwbbwbbwbbw| 欧美成在线播放 | 午夜精品网 | 91成人抖音 | 一级黄色片一 | 亚洲人jizz | 国产大片在线观看 | 亚洲精品国自产拍影院 | 免费的一级黄色片 | 亚洲欧洲视频在线观看 | 亚洲精品高清久久 | 在线播放交视频 | 91短视频社区在线观看 | 黄色天堂网 |