Как получить TestCategory для Testcase с использованием C#, Visual Studio MS Test

Я ищу, чтобы найти тестовую категорию тестового случая во время выполнения с помощью C#. Я использую MSTEST, TestContext не имеет никакой информации, связанной с TestCategory, я хочу получить / записать информацию TestCategory. В моем случае у меня есть несколько TestCATEGORIES, назначенных для теста. Пример

BaseTest будет иметь методы Initialization и CleanUp.

[TestClass]
    public class CustomerTest : BaseTest
    {
        [TestMethod]
        [TestCategory("Smoke")]
        [TestCategory("regression")]
        public void Login()

1 ответ

Решение

Вы можете использовать отражение, чтобы получить атрибуты внутри тестового метода, например так:

[TestMethod]
[TestCategory("Smoke")]
[TestCategory("regression")]
public void Login()
{
    var method = MethodBase.GetCurrentMethod();
    foreach(var attribute in (IEnumerable<TestCategoryAttribute>)method
        .GetCustomAttributes(typeof(TestCategoryAttribute), true))
    {
        foreach(var category in attribute.TestCategories)
        {
            Console.WriteLine(category);
        }
    }
    var categories = attribute.TestCategories;  
}

Если вы хотите получить категории в другом месте, чем внутри метода теста, вы можете использовать

var method = typeof(TheTestClass).GetMethod("Login");

чтобы получить базу метода и получить атрибуты, как описано выше.

Источник: прочитайте значение атрибута метода

Другие вопросы по тегам