C#으로 작성된 몇 가지 테스트 프로젝트가 있습니다. 테스트 프로젝트를 참조하고 모든 테스트 메소드 이름을 동적으로 발견 할 수있는 새로운 애플리케이션 (콘솔 또는 WPF 애플리케이션 일 수 있음)을 작성해야합니다.모든 테스트 방법 (코드 된 UI)을 동적으로 찾는 방법은 무엇입니까?
지금까지 모든 테스트 프로젝트에서 모든 메서드와 속성 이름을 찾을 수 있었지만 테스트 메서드 이름 만 필터링 할 수는 없었습니다. 모든 테스트 메소드에 [TestMethod] 속성이 있기 때문에 TestMethodAttribute를 사용하여 테스트 메소드를 필터링 할 수 있도록 호핑되었습니다. 그러나 그것은 제대로 일을하지 않습니다. 여기에 코드
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 이 get_TestContext GetHashCode GetType을 set_TestContext
그래서 나는 다음과 같은 문장을 삭제하면 ToString 같음 이다, 결과는이다 같은.
개체 [] al = mi.GetCustomAttributes (typeof (Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute), false); if (al! = null)
내 질문에 모든 메서드 이름을 찾은 후 어떻게 결과를 필터링하고 테스트 메서드 만 가져올 수 있습니까?이 예제에서는 "CodedUITestMethod3"만 인쇄해야합니까?