我有幾個用C#編寫的測試項目。我需要創建一個新的應用程序(可以是控制檯或WPF應用程序),它需要引用測試項目並動態地找出所有測試方法名稱。如何動態查找所有測試方法(編碼的UI)?
到目前爲止,我能夠找到所有測試項目中的所有方法和屬性名稱,但我無法僅過濾測試方法名稱。我跳躍到能夠通過使用TestMethodAttribute篩選出測試方法,因爲所有測試方法都具有[TestMethod]屬性。但是它不能正確地完成這項工作。下面是代碼
MethodInfo[] methodInfos = typeof(CodedUITest2).GetMethods();
Array.Sort(methodInfos,
delegate(MethodInfo methodInfo1, MethodInfo methodInfo2)
{return methodInfo1.Name.CompareTo(methodInfo2.Name);});
foreach (MethodInfo mi in methodInfos)
{
object[] al = mi.GetCustomAttributes(typeof(Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute), false);
if (al != null)
Console.WriteLine(mi.Name);
}
程序的輸出的提取 CodedUITestMethod3 Equals已 get_TestContext 的GetHashCode 的GetType set_TestContext 的ToString
所以,如果我刪除下面的語句,其結果是相同。
object [] al = mi.GetCustomAttributes(typeof(Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute),false);如果(al!= null)
所以我的問題是找到所有的方法名稱後,如何篩選結果並獲得唯一的測試方法,在這個例子中,它應該只打印「CodedUITestMethod3」?