を使用して、テストメソッド内のカテゴリ属性を読みます:は、私は、リフレクションを使用して.dllファイルを読み込むことで<code>TestMethod</code>カスタム属性のカテゴリプロパティを使用して、このような何かをテストメソッドを追加しようとしているリフレクション
[TestMethod, Category("xyz"), Category("abc")]
public void VerifySomething()
{
//some code
}
私はこのような反射を利用した.dllを読んでいる:
Assembly _assembly = Assembly.LoadFile(AssembleyPath);
Type[] types = _assembly.GetExportedTypes();
foreach (Type type in types)
{
Attribute _classAttribute = type.GetCustomAttribute(typeof(TestClassAttribute));
if (_classAttribute != null)
{
TreeNode _n = new TreeNode();
_n.Text = type.Name;
if (type.Name.ToLower().Contains("testbase"))
// For exculding test base class from tree node list
continue;
MemberInfo[] members =
type.GetMembers(BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod);
foreach (MemberInfo member in members)
{
Attribute _att = member.GetCustomAttribute(typeof(TestMethodAttribute));
if (_att != null)
{
TestMethod _t = new TestMethod(member.Name);
}
}
}
}
私は特にによってフィルタリングテストメソッドを追加することができないよ、これを使用しますツリービューノード内のカテゴリ。 基本的には、私が望むのは、上記の例のように "xyz"や "abc"のような値を持つdllからTestCategoryAttributeを読み込み、フィルタ(TestCategoryAttribute)の値に基づいてメソッドをロードすることですdllを作成し、treeviewノードに追加します。誰も私を導くことができますか私はそれを達成することができます。
私は、すべてのテストメソッドを取得していますが、私はにできないよ、私はTestMethodsをフィルタリングすることがありますかに基づいてTestCategoryAttributeを読み、DLLの読み込み中にツリーノード –
にそれらを追加することができませんよテストカテゴリ –
が正しく入力されています。そのヌルではありません –