如何使用 C# 获取测试用例的 TestCategory,Visual Studio MS 测试
How to get TestCategory for a Testcase using C#, Visual Studio MS Test
我想在运行时使用 C# 查找测试用例的测试类别。我正在使用MSTEST,TestContext没有任何与TestCategory相关的信息,我想要capture/log TestCategory的信息。在我的例子中,我有多个 TestCATEGORIES 分配给一个测试用例.. Example
BaseTest 将具有 Initialization 和 CleanUp 方法..
[TestClass]
public class CustomerTest : BaseTest
{
[TestMethod]
[TestCategory("Smoke")]
[TestCategory("regression")]
public void Login()
您可以使用反射来获取测试方法中的属性,如下所示:
[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");
获取方法库并获取上述属性。
来源:Read the value of an attribute of a method
我想在运行时使用 C# 查找测试用例的测试类别。我正在使用MSTEST,TestContext没有任何与TestCategory相关的信息,我想要capture/log TestCategory的信息。在我的例子中,我有多个 TestCATEGORIES 分配给一个测试用例.. Example
BaseTest 将具有 Initialization 和 CleanUp 方法..
[TestClass]
public class CustomerTest : BaseTest
{
[TestMethod]
[TestCategory("Smoke")]
[TestCategory("regression")]
public void Login()
您可以使用反射来获取测试方法中的属性,如下所示:
[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");
获取方法库并获取上述属性。
来源:Read the value of an attribute of a method