Получение настраиваемых атрибутов с помощью отражения

Я создаю утилиту для запуска примеров модульного тестирования, где пользователю будет предоставлена ​​возможность выбрать тест, который он хочет запустить. Я использую отражение, чтобы получить методы. Но это не работает

var assembly = Assembly.Load("TestingAssembly");
var classes = assembly.GetTypes().Where(m => m.GetCustomAttributes(typeof(TestClassAttribute), false).Length > 0);
 foreach (var type in classes)
 {
   var methods= type.GetTypes().Where(m1 => m1.GetCustomAttributes(typeof(TestMethodAttribute), false).Length > 0);
 }

Объект классов всегда пуст. Если я перейду через assembly.GetTypes и получу настраиваемые атрибуты, он возвращает счетчик. Но все же я не могу с этим сравниться. В приведенном ниже коде атрибуты содержат элемент с TestClassAttribute. Но когда я сопоставляю тип атрибута с TestClassAttribute, это не удается.

foreach (Type type in assembly.GetTypes())
{
  if (type.GetCustomAttributes().Count() > 0)
   {
     var attributes = type.GetCustomAttributes();
       foreach (var item in attributes)
       {
         if (item.GetType() == Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute)
         {
            //Do something
         }
       }
   }
}

person DotNetLearner    schedule 02.03.2016    source источник
comment
Есть ли причина не использовать встроенные средства запуска тестов? Кстати type.GetTypes() не может компилироваться. каков тип среды CLR переменной type?   -  person Sriram Sakthivel    schedule 02.03.2016
comment
Хотите, чтобы тест выполняла и команда тестирования, у которой нет доступа к Visual Studio.   -  person DotNetLearner    schedule 02.03.2016
comment
Оказывается, вы можете использовать агент тестирования VS или просто использовать nunit; он поставляется с тестовым раннером.   -  person Sriram Sakthivel    schedule 02.03.2016
comment
Я закрыл ваш вопрос как дубликат вышеупомянутого. Надеюсь, что соответствующий вопрос поможет. Если вы не согласны с дубликатом, оставьте здесь комментарий. Спасибо   -  person Sriram Sakthivel    schedule 02.03.2016
comment
Спасибо за предложение об инструменте. Но не могли бы вы сказать, что не так с кодом и почему он не работает?   -  person DotNetLearner    schedule 02.03.2016
comment
Вы пропустили ключевое слово typeof здесь if (item.GetType() == typeof(Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute)). Также я вижу несколько вещей, которые могут вызвать ошибку компилятора. Я считаю, что это не настоящий код. Чтобы помочь, нам нужен настоящий код.   -  person Sriram Sakthivel    schedule 02.03.2016
comment
В моем коде есть typeof. Извините за опечатку. Это почти тот же код, что и в моей утилите.   -  person DotNetLearner    schedule 02.03.2016
comment
Я решил проблему. Проблема возникла из-за того, что TestingAssembly был построен с другой версией Microsoft.VisualStudio.TestTools.UnitTesting.dll, чем та, которая упоминается в моей утилите.   -  person DotNetLearner    schedule 03.03.2016