【问题标题】:MSTest data driven Test set DisplayName for Rows from DataSourceMSTest 数据驱动测试集 DisplayName for Rows from DataSource
【发布时间】:2013-11-12 08:50:24
【问题描述】:

如何在数据驱动测试中设置数据行的 DisplayName,其中数据源是 XML,提供程序是 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”。

【问题讨论】:

    标签: visual-studio-2012 mstest xmldatasource data-driven-tests test-reporting


    【解决方案1】:

    是否可以使用自定义数据源属性。一个例子可以是:

    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;
        }
    }
    

    测试方法应该是这样的:

            [DataTestMethod]
            [XmlCustomDataSource]
            public void Should_Blur(string environmentName)
            {
                var actualEnvironment = SomeMethodToGetActualEnvironment();
                Assert.AreEqual(environmentName, actualEnvironment);
            }
    

    最后,您的测试详细信息将是:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多