Click here to Skip to main content
15,886,873 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm trying to run NUNIT tests through Reflection in C#. I load the assemble and get the methods, then I want to filter out for methods only assigned the NUnit.FrameWork.TestAttribute.

I have tried this and it doesn't work:

C#
var testTypes = from t in ltAssm.GetTypes()
                       let attributes = t.GetCustomAttributes(typeof(NUnit.Framework.TestFixtureAttribute), true)
                       where attributes != null && attributes.Length > 0
                       orderby t.Name
                       select t;
       foreach (var type in testTypes)
       {
           //get test method in class.
           var testMethods = from m in type.GetMethods()
                             let attributes = m.GetCustomAttributes(typeof(NUnit.Framework.TestAttribute), true)
                             where attributes != null && attributes.Length > 0
                             orderby m.Name
                             select m;
           foreach (var method in testMethods)
           {
               methods.Add(method);
           }
       }

no methods picked up even though there are 50.

Even running this simple line doesn't pick anything up:

C#
var xx = classMethods[11].GetCustomAttributes(typeof(NUnit.Framework.TestAttribute), false);

I also tried instantiating the type and still nothing.

Those same methods have another custom attribute which I created and assigned to them, if I attempt to retrieve the methods using that Attrib, then they are retrieved.

Anyone know of something special that needs to be done for Reflection to recognize Nunit's TestAttribute?
Posted
Comments
Sergey Alexandrovich Kryukov 12-Nov-12 13:23pm    
You did not show the code sample to be tested. How can we know that you correctly applied the test attributes to the test classes and test methods?
--SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900