
2.測試的方法必須是void的,不帶有返回類型,如圖所示: 
b.打開項目的屬性頁,【調試】-【啟動操作】部分,選擇啟動外部程序,然后選擇nunit.exe程序。這樣F5調試的時候,可以直接用nunit打開,查看單元測試的執行信息

對比Microsoft.VisualStudio.TestTools.UnitTesting的Assert靜態類,可以發現提供的靜態方法大體一致,甚至連形參名稱都相同。2.測試的方法同樣必須是void的。可以驗證:給一個有返回值的方法標記Test附加屬性。 [Test] public int TestNUnit4() { Assert.Greater(10, 11, "不知道具體結果"); return 1; }運行之后,如圖所示,會提示相應的測試方法運行不了,(注意是Invalid,而不是斷言失敗的Failed),原因是方法有一個非空的返回類型,而nunit期望的是無返回結果的方法。

3.如果想讓某個方法暫時不運行測試(或者說測試的時候忽略),可以給它附加了Ignore屬性。
[Test] [Ignore("the method is not ready yet")]//方法標記Ignore屬性,會在nunit中忽略這個方法的運行,呈現黃色。 public void TestNUnit3() { Assert.AreEqual(10, 11, "it is not equal"); }
注意:Ignore屬性可以附加在方法上,也可以附加在類上,這樣整個類中的測試方法都會忽略測試運行。如下所示: [TestFixture] [Ignore("the class is not ready yet")] public class Test { [Test] public void TestNUnit() { Console.WriteLine("12121"); Assert.AreEqual(1, 2, "it is not equal"); } [Test] public void TestNUnit1() { Assert.AreEqual(1, 1 ,"it is not equal"); } [Test] public void TestNUnit2() { Assert.AreEqual(1, Assert.Counter); } . . . }
[Test] public void Method1() { var a = 1; var b = 0; var test = a / b; Assert.Pass("assert pass"); }
[TestFixture] public class Test { [Test] public void TestNUnit() { Console.WriteLine("12121"); Assert.AreEqual(1, 2, "it is not equal"); } //省略其他測試方法... [SetUp] public void SetUp() { Console.WriteLine("SetUp"); } [TearDown] public void TearDown() { Console.WriteLine("TearDown"); } }運行效果如圖:

新聞熱點
疑難解答