這是一個ASP.NET 3.5的Web Application程序,實現了類似NUnit的簡單但實用的UnitTest功能。寫這個小工具的目的是在NBear5的開發中需要方便的在完全真實的模擬環境中測試所有組件功能的在ASP.NET下,尤其是Partial Trust模式下的運行效果,現有的UnitTest工具中似乎對這方面的支持都比較有限,所以,自己花兩天時間寫了一個。相比NUnit,本工具提供的UnitTest功能比較基礎,但是,對一般的UnitTest來說應該完全夠用了。如果您正在開發和測試一些ASP.NET下的Web組件,推薦一試。程序本身就是一個Web Application,所以,自然是包含了全部源代碼的。源碼對除.Net Framework 3.5之外的DLL沒有任何依賴,也可以做成VS的Project Template方便重複使用。
版權
本文內容及相關代碼遵守BSD開源協議,首發於http://www.cnblogs.com/teddyma/archive/2008/11/10/1330535.html。
使用說明
UI界面
運行Default.aspx後,程序員自動列出所有的TestCases:
選擇需要運行的TestCases,點擊Run Tests後,TestCases被運行:
展開Tree可以看到運行的輸出結果:
編寫TestCase
要編寫TestCase只需要在TestCases目錄下新建.cs文件,並給你的測試Class和測試方法分別標註TestMethodAttribute。下面是程序默認附帶的TestClass1類的源代碼,可以看到和NUnit等工具的定義基本類似,SetUpAttribute和CleanUpAttribute僅支持Classs範圍的,也就是說在一個Class中的所有TestMethod被執行的前後分別執行,其他的如TestClassAttribute,TestMethodAttribute和
ExpectedExceptionAttribute等就非常直觀的,隨便猜就能猜到意思了:
2namespace NBear.WebTest.TestCases
3{
4 [TestClass]
5 public class TestContractDescriptor
6 {
7 [SetUp]
8 public void SetUp()
9 {
10 }
11
12 [TestMethod]
13 public void TestMethod1()
14 {
15 Output.WriteLine("hello world");
16 Assert.IsTrue(true);
17 }
18
19 [TestMethod]
20 [ExpectedException(typeof(NotImplementedException))]
21 public void TestMethod2()
22 {
23 throw new NotImplementedException();
24 }
25
26 [CleanUp]
27 public void CleanUp()
28 {
29 }
30 }
31}
Assert類用於Check,支持如下Check方法:
下載地址
打包下載:http://files.cnblogs.com/teddyma/WebTest.zip
SVN下載:http://svn.cnblogs.com:8080/svn/NBear/trunk/src/WebTest/
Enjoy!
//the end