[ClassInitialize()] [ClassCleanup()] [TestInitialize()] [TestMethod] [TestCleanup()]
在執行一個或多個[TestMethod]輸出時, [ClassInitialize()] 最先執行,[ClassCleanup()]最后執行,對於執行每個[TestMethod],執行順序是[TestInitialize()] [TestMethod] [TestCleanup()]
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using System.IO; namespace UnitTestProject1 { [TestClass] public class UnitTest1 { static StreamWriter sw = new StreamWriter("C:\\temp\\Test.txt", false); [ClassInitialize()] public static void MyClassInitialize(TestContext testContext) { sw.WriteLine("MyClassInitialize"); sw.Flush(); } [ClassCleanup()] public static void MyClassCleanup() { sw.WriteLine("MyClassCleanup"); sw.Flush(); } [TestInitialize()] public void MyTestInitialize() { sw.WriteLine("MyTestInitialize"); sw.Flush(); } [TestCleanup()] public void MyTestCleanup() { sw.WriteLine("MyTestCleanup"); sw.Flush(); } [TestMethod] public void TestMethod1() { sw.WriteLine("TestMethod1"); sw.Flush(); } [TestMethod] public void TestMethod2() { sw.WriteLine("TestMethod2"); sw.Flush(); } [TestMethod] public void TestMethod3() { sw.WriteLine("TestMethod3"); sw.Flush(); } } }
3個method一起選中執行的輸出
MyClassInitialize
MyTestInitialize
TestMethod1
MyTestCleanup
MyTestInitialize
TestMethod2
MyTestCleanup
MyTestInitialize
TestMethod3
MyTestCleanup
MyClassCleanup
選中一個,執行后的輸出
MyClassInitialize
MyTestInitialize
TestMethod1
MyTestCleanup
MyClassCleanup