我正在尝试在MSTest中获取已运行TestMethod的特定TestMethod的TestCategory名称。
如果TestMethod有多个TestCategory,其中特定的TestCategory是方法调用?
我使用下面的代码获取Method的所有TestCategories,但是如何找到调用该方法的特定类别。
[TestMethod, TestCategory("Reg"), TestCategory("Smoke"), TestCategory("Sanity"), TestCategory("PathTest")]
public void TestMethod_testCatetory()
{
var method = MethodBase.GetCurrentMethod();
foreach (var attribute in (IEnumerable<TestCategoryAttribute>)method
.GetCustomAttributes(typeof(TestCategoryAttribute), true))
{
foreach (var category in attribute.TestCategories)
{
Console.WriteLine(category);
}
}
}
从cmd开始,将使用以下命令
调用C:\VSTest.Console.exe LocationOfDLL /TestCaseFilter:"TestCategory=Smoke"
是否可以获取TestCategory是Smoke,用于调用方法?
答案 0 :(得分:0)
您无法直接在测试方法代码中获取当前类别。
您可以从RunSettings文件(TestContext.Properties[xxx]
)中读取值并在测试期间覆盖参数,步骤如下:
有一个博客可以帮助您:Supplying Run Time Parameters to Tests