[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); } . . . }4.Errors and Failures中会显示测试方法在发生错误和断言失败的情况下的信息如下代码:
[Test] public void Method1() { var a = 1; var b = 0; var test = a / b; Assert.Pass("assert pass"); }5.Text Output中会显示测试运行中输出的内容。代码如下:
[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"); } }
运行效果如图:
其中有SetUp、TearDown两个输出。附加属性SetUp的作用是在每个测试运行之前执行,可用作初始化工作;TearDown则是在每个测试运行之后执行,可用作释放资源。还有两个附加属性:TestFixtureSetUp和TestFixtureTearDown同样提供相同的目的,不过是在test fixture范围下。参考:http://confach.VEVb.com/archive/2005/06/20/177817.aspx新闻热点
疑难解答