Я хочу знать, есть ли способ прочитать значение тестового атрибута? Например
[TestMethod , TestCategory ("Smoke Test"), Priority (1), Owner ("Tester")]
если есть способ получить значение атрибута владельца теста в виде строки с помощью С#
У меня есть более 1100 методов тестирования в разных классах с разными именами владельцев, назначенных им. Нужен какой-то общий метод, чтобы получить значение атрибута владельца.
Я думаю, Контекст теста может вам помочь.
var category = (string) TestContext.CurrentContext.Test.Properties.Get("Category");
Я говорю о времени выполнения, иначе вы могли бы использовать это (tnx to Марк Беннингфилд)
спасибо за помощь, я использовал решение Mikael Engver связь
public class Helper
{
public static TValue GetOwnerAttributeValue<TValue>(MethodBase method, Func<OwnerAttribute, TValue> valueSelector)
{
return method.GetCustomAttributes(typeof(OwnerAttribute), true).FirstOrDefault() is OwnerAttribute attr ? valueSelector(attr) : default(TValue);
}
}
Вызывается так
var testMethod = new StackTrace().GetFrame(1)
.GetMethod();
var testAuthor = Helper.GetOwnerAttributeValue(testMethod, x => x.Owner);
Лучший способ назвать это var owner = Helper.GetOwnerAttributeValue(GetType().GetMethod(TestName), x => x.Owner);
Возможный дубликат Прочитать значение атрибута метода