熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

用Delphi2005和DUnit搭建敏捷開發平台

2022-06-13   來源: Delphi編程 
之前用的是Java那一套東西有Eclipse什麼都搞定了現在因為要用Delphi改一個即時通訊軟件的緣故想著怎麼能把重構和單元測試那一套搬到Delphi這邊來書上說給現有的代碼加單元測試能夠加深對代碼的理解並且可以作為改善代碼的基礎這不正是我要做的事情嗎?於是為了搭建這麼一個敏捷平台我以Delphi和DUnit進行了一點小小的嘗試並把結果記錄於下與大家分享
  
  下載Delphi
  因為Borland公司在中國不出售專業版本鑒於架構師和企業版的天價所以只能從網絡上下載一個D版的做個人使用Delphi體積比較大而且Update也需要CD所以推薦用BT下載CD版本種子的地址如下
  
  
  下載Delphi的sp
  據說打過這個補丁之後能快一些但是這個補丁安裝起來可慢了還需要用光盤下載地址如下
  
  
  下載DUnit
  
  
  安裝Delphi+sp
  注意一下keygen中有一個register以及安裝的時候一定要同時安和win版本的delphiC#builder則無所謂因為如果只安裝win版本會導致重構功能不可用(這是delphi的一個bug表現就是用重構的時候出的異常窗口)
  
  精簡Delphi
  因為上一步的時候同時安裝版本導致delphi啟動的時候變得非常慢這個可以通過修改注冊表刪掉一些IDE的包來實現具體的做法是在Delphi的快捷方式目標後面加上參數rxxx也就是BDSexe rxxx這個xxx任由你指定然後你就會在HKEY_CURRENT_USER\Software\Borland\xxx(這個就是你選定的名字xxx)\\Known IDE Packages中發現那些該死的包注意不能和網絡上別的win純化分子那樣刪得太干淨了那樣重構就沒法用了我自己試驗多次之後得出的一個比較精簡的列表如下
  $(BDS)\\Bin\\vclmenudesignerbpl=(Untitled)
  $(BDS)\\Bin\\windebugproidebpl=(Untitled)
  $(BDS)\\Bin\\htmidebpl=HTML Designer Package
  $(BDS)\\Bin\\iteidewbpl=Borland Integrated Translation Environment for Win
  $(BDS)\\Bin\\SrcManIDEbpl=(Untitled)
  $(BDS)\\Bin\\todoidebpl=Borland ToDo
  $(BDS)\\Bin\\htmlhelpbpl=Borland HtmlHelp Viewer
  $(BDS)\\Bin\\idefilefiltersbpl=IDE File filters
  $(BDS)\\Bin\\startpageidebpl=Borland Start Page IDE Package
  $(BDS)\\Bin\\refactoridebpl=Borland Core Refactoring Package
  $(BDS)\\Bin\\dbkdebugidebpl=(Untitled)
  $(BDS)\\Bin\\exceptiondiagbpl=(Untitled)
  $(BDS)\\bin\\deployidebpl=Deployment Manager
  $(BDS)\\Bin\\plugviewbpl=Pluggable Tree View Package
  $(BDS)\\Bin\\coreproidebpl=Core IDE Pro Package
  $(BDS)\\Bin\\IDEToolsbpl=Build Tools
  $(BDS)\\Bin\\unittestidebpl=(Untitled)
  $(BDS)\\Bin\\historyidebpl=(Untitled)
  $(BDS)\\Bin\\htmltidybpl=HTML Tidy Formatter
  $(BDS)\\Bin\\HTMLFmtbpl=HTML Internal Formatter
  $(BDS)\\Bin\\mlccbpl=Markup Language Code Completion Package
  $(BDS)\\Bin\\delphivclidebpl=Delphi VCL Designer IDE Package
  $(BDS)\\Bin\\delphicoreproidebpl=(Untitled)
  $(BDS)\\Bin\\windebugidebpl=(Untitled)
  $(BDS)\\Bin\\htmlidebpl=(Untitled)
  $(BDS)\\Bin\\delphidebpl=Delphi Win IDE Personality
  $(BDS)\\Bin\\mtsprobpl=(Untitled)
  $(BDS)\\Bin\\mtsentbpl=(Untitled)
  $(BDS)\\Bin\\iteidenetbpl=Borland Integrated Translation Environment for NET
  $(BDS)\\Bin\\NetImportWizbpl=(Untitled)
  $(BDS)\\Bin\\DataExplorerbpl=(Untitled)
  雖然啟動還是有些慢不過總算能忍受了
  
  編譯並安裝DUnit
  用你知道的辦法把DUnit編譯成dcu放入你指定的目錄並把該目錄添加到Delphi的Tools>Environment Options>Delphi Options>Librarywin的Library Path中
  另外把DUnitexe給編譯出來
  
  建立工程
  我推薦的方式是寫Delphi程序的時候把界面和後台分開具體就是開兩個項目一個普通的VCL項目一個DLL項目我的意思並不是讓你用DLL這種方式來共享代碼這個DLL項目包含文件是所有後台的內容以及對後台的測試產生的DLL給DUnit用DUnit能夠從其中讀出測試並運行而實際上GUI部分的那個工程是包含了所有的文件的也就是說分與其說分兩個工程不如說是在原來的單個工程的基礎上加上了一個專門用於測試的DLL工程
  項目分為三塊GUICoreTestCore工程一包括GUI+Core工程二包括Core+TestCore工程一的輸出是WinExe程序工程二輸出是WinDll程序
  然後可以把這兩個工程放到一個Project Group中
  
  編寫測試
  工程一和普通寫Dephi程序沒有什麼兩樣要記得把GUI的功能分出來後台讓後台Testable測試都是寫在工程二中的我把工程二的名字就叫做Core下面就在Core中添加一個最基本的測試檢查+是不是等於
  建立TestCase
  
  unit TestBasic;
  
  interface
  
  uses
   TestFramework;
  
  type
   TBasic = class
   public
    function Add(a b: integer): integer;
   end;
  
   TTestBasic = class(TTestCase)
   private
    FBasic: TBasic;
   public
    procedure SetUp; override;
    procedure TearDown; override;
   published
    procedure TestAdd;
   end;
  
  implementation
  
  function TBasicAdd(a b: integer): integer;
  begin
   Result := a + b;
  end;
  
  procedure TTestBasicSetUp;
  begin
   FBasic := TBasicCreate;
  end;
  
  procedure TTestBasicTearDown;
  begin
   FBasicFree;
  end;
  
  procedure TTestBasicTestAdd;
  begin
   CheckEquals( FBasicAdd( ));
  end;
  
  initialization
   RegisterTest( TTestBasicSuite);
  
  end
  
  修改Corebdsproj(KAO什麼古怪的後綴啊)
  把begin end改成
  exports
   RegisteredTests name Test;
  end
  並在Uses部分添加TestFramework
  
  DUnit就是通過這個export的函數在dll中找出我們注冊的TestCase的
  
  運行DUnit
  把DUnit添加到Tools菜單下吧那樣方便許多只是參數不好填寫我沒有用裡面的macro直接填了絕對路徑如果你和我一樣這樣直接填的絕對路徑那麼從Tools菜單下選DUnit就能直接看到一個測試列表了點運行就會看到一個綠燈亮起了
  如果你不是把DUnit添加到Tools菜單那麼就要從File>Load Test的文件選擇窗口中找到Core項目編譯出來的dllcoredll
From:http://tw.wingwit.com/Article/program/Delphi/201311/24654.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.