Как получить 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");
чтобы получить базу метода и получить атрибуты, как описано выше.
Источник: прочитайте значение атрибута метода