使用Microsoft测试管理器中的数据在mstest单元测试中获取表名

本文关键字:单元测试 mstest 获取 数据 Microsoft 测试 管理器 使用 | 更新日期: 2023-09-27 18:27:28

我有用DataSource属性装饰的测试方法,比如:

[DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, 
"Test Case#", DataAccessMethod.Sequential), 
TestMethod]

MTM中的测试用例编号替换为"测试用例#"。我试图在单元测试中得到这个数字,但TestContext.DataRow.Table.TableName总是"Table1"。有人能告诉我如何获得真正的价值吗?

使用Microsoft测试管理器中的数据在mstest单元测试中获取表名

除非我错了,否则"TestCase#"不能被MTM取代,所以很可能你已经在所有DataSource属性中手动添加了它。

此值为constant。为什么不在TestClass中添加一个常量变量,然后在DataSourceAttributeTestMethod上都使用它呢?


编辑
您也可以直接访问DataSourceAttribute

[TestClass]
public class TestClass
{
    public DataSourceAttribute DataSource
    {
        get
        {
            return (DataSourceAttribute)Attribute.GetCustomAttribute(typeof(TestClass).
                GetMethod("TestMethod"), typeof(DataSourceAttribute));
        }
    }
    [DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, 
        "Test Case#", DataAccessMethod.Sequential), TestMethod]
    public void TestMethod()
    {
        string TestCaseId = DataSource.TableName;
    }
}