|
在Web開(kāi)發(fā)中測(cè)試單個(gè)頁(yè)面的功能實(shí)在是太麻煩,從首頁(yè)用戶名、密碼進(jìn)去后,經(jīng)過(guò)一些操作后才可以來(lái)到你要測(cè)試的那個(gè)頁(yè)面。(其實(shí)無(wú)論做什么的開(kāi)發(fā),測(cè)試單個(gè)功能都是很麻煩)。抱著小心謹(jǐn)慎的態(tài)度,我一般喜歡寫(xiě)幾段測(cè)一次,如果每次都興師動(dòng)眾的啟動(dòng)整個(gè)項(xiàng)目來(lái)測(cè)試顯然是很不經(jīng)濟(jì)的做法。
我一般會(huì)在Solution中新增一個(gè)用于測(cè)試用的配置,在其中增加一個(gè)“Test"之類的編譯指令,然后在代碼中,把一些測(cè)試條件,測(cè)試方法放到這個(gè)指令下。在開(kāi)發(fā)團(tuán)隊(duì)還沒(méi)有引進(jìn)單元測(cè)試之類的概念的時(shí)候,我可不想用新增一個(gè)測(cè)試項(xiàng)目這樣的方法來(lái)做這種事情。而且對(duì)于象Web下單個(gè)的Page這樣的情況我也不知道應(yīng)該是如何進(jìn)行法。所以還是用以前自己的編譯指令這種方法比較的輕車熟路點(diǎn)。
(我以前在寫(xiě)一些非WEB下的東西的時(shí)候,也喜歡把測(cè)試方法與類本身寫(xiě)在一個(gè)文件里,然后用編譯指令區(qū)分開(kāi),如果要測(cè)試,就直接在開(kāi)發(fā)環(huán)境下選擇"Test"的那個(gè)配置,然后啟動(dòng)TestDriven來(lái)測(cè)試之,不用啟動(dòng)整個(gè)項(xiàng)目對(duì)機(jī)器省力多了,TestDriven這個(gè)東西很管用的。
如果你是用C#作開(kāi)發(fā)的,在開(kāi)發(fā)環(huán)境中,如果當(dāng)前這個(gè)編譯條件不滿足的時(shí)候,那些代碼都會(huì)灰掉,而且可以縮進(jìn),一點(diǎn)都不障眼)
不過(guò)我的那些伎倆,在VS2005下有點(diǎn)不管用了,現(xiàn)在WEB開(kāi)發(fā)跟以前有點(diǎn)區(qū)別了。在上面找來(lái)找去都找不到地方來(lái)新增編譯指令,非WEB的開(kāi)發(fā)還是可以找到地方新增的。折騰了半天,發(fā)現(xiàn)現(xiàn)在把一些設(shè)置的東西都放到Web.config里來(lái)了,條件編譯當(dāng)然也不例外。
比如現(xiàn)在要加一個(gè)”Test”的條件編譯指令。在Web.config文件中,在<compilation>這個(gè)節(jié)下加入下述語(yǔ)句就可以了。
<compilers>
<compiler language="vb"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
extension=".VB"
compilerOptions="/define:Debug=True /define:Trace=True /define:Test=True "/>
<compiler language="c#"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
extension=".cs"
compilerOptions="/d:DEBUG;TRACE;Test"/>
</compilers>
很要命的,對(duì)每一種語(yǔ)言都要加一個(gè)<compiler>,當(dāng)然如果項(xiàng)目中沒(méi)用到相應(yīng)語(yǔ)言,也可以不用理它,可以刪掉。一般C#、VB用得比較的多,我只搞了這二種。
Web.config里設(shè)置過(guò)后就不用在每一個(gè)需測(cè)試的頁(yè)面上去定義編譯指令了,不過(guò)還是沒(méi)有以前爽,以前直接在IDE工具欄上選擇一下配置就行了,現(xiàn)在硬是要寫(xiě)這么多東西,而且主要還是不方便切換。比如我不要在"Test"條件下啟動(dòng)時(shí),我還得跑到Web.config里把上面一段東西注釋掉。
按照MSDN的說(shuō)法,在.NET 2.0下,<compiler>這個(gè)element是deprecated的了,我這種做法好象不是正路。
AspNet技術(shù):ASP.NET 2.0下的條件編譯,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。