using Microsoft.VisualStudio.TestTools.UnitTesting;
如果該DLL應用的是
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
版本為9.0.0.0 的話,則使用[ClassInitialize]會該方法必須是靜態的公共方法,不返回值並且應采用一個TestContext類型的參數報錯!不知道是否是微軟的BUG。
解決辦法:
將DLL修改為:C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
版本為10.1.0.0
[ClassInitialize]
public static void MyClassInitialize(TestContext context)
{
SysConfig.LoadCfg();
}
經過最后的測試發現:9.0.0.0.0 版本只能在vs2008上使用;10.0.0.0版本則可以在vs2008 vs2010 2012所有版本上面使用。
分享一個標准的ms unit 測試方法:
#region 附加測試特性 //編寫測試時,還可使用以下特性: //使用 ClassInitialize 在運行類中的第一個測試前先運行代碼 [ClassInitialize()] public static void MyClassInitialize(TestContext testContext) { } 使用 ClassCleanup 在運行完類中的所有測試后再運行代碼 [ClassCleanup()] public static void MyClassCleanup() { } 使用 TestInitialize 在運行每個測試前先運行代碼 [TestInitialize()] public void MyTestInitialize() { } 使用 TestCleanup 在運行完每個測試后運行代碼 [TestCleanup()] public void MyTestCleanup() { } #endregion