MSTest 数据驱动测试集 DisplayName for Rows from DataSource [英] MSTest data driven Test set DisplayName for Rows from DataSource
本文介绍了MSTest 数据驱动测试集 DisplayName for Rows from DataSource的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在数据驱动的测试中设置数据行的 DisplayName,其中数据源是 XML,提供程序是 Microsoft.VisualStudio.TestTools.DataSource.XML.
How can I set the DisplayName of a Data Row in data driven tests, where the data source is a XML and the provider is Microsoft.VisualStudio.TestTools.DataSource.XML.
XML:
<?xml version="1.0" encoding="utf-8" ?>
<environments>
<environment><name>IE</name></environment>
<environment><name>Chrome</name></environment>
</environments>
应用配置:
<!-- CONNECTION STRINGS SETTINGS -->
<connectionStrings>
<add name="IE_Chrome" connectionString="IE_Chrome.xml" providerName="Microsoft.VisualStudio.TestTools.DataSource.XML"/>
</connectionStrings>
<!-- PARAMETERIZING TEST SETTINGS -->
<microsoft.visualstudio.testtools>
<dataSources>
<add name="IE_Chrome" connectionString="IE_Chrome" dataTableName="environment" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
输出:
我想显示环境名称而不是数据行 0".
I'd like to display the Environment Name instead of "Data Row 0".
推荐答案
是否可以使用自定义数据源属性.一个例子可以是:
Is it possible with a custom data source attribute. An example can be:
public class XmlCustomDataSourceAttribute : Attribute, ITestDataSource
{
public IEnumerable<object[]> GetData(MethodInfo methodInfo)
{
foreach (var environment in YourStaticXmlParser.GetEnvironments())
{
yield return new object[] { environment.Name };
}
}
public string GetDisplayName(MethodInfo methodInfo, object[] data)
{
if (data != null)
{
return string.Format("Target Environmment- {0} ({1})", methodInfo.Name, data[0]);
}
return null;
}
}
并且测试方法应该如下所示:
and the test method should look like:
[DataTestMethod]
[XmlCustomDataSource]
public void Should_Blur(string environmentName)
{
var actualEnvironment = SomeMethodToGetActualEnvironment();
Assert.AreEqual(environmentName, actualEnvironment);
}
最后,您的测试详细信息将是:
Finally your test detail will be:
这篇关于MSTest 数据驱动测试集 DisplayName for Rows from DataSource的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文