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