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

C# 使用Microsoft测试管理器中的数据获取mstest单元测试中的表名,c#,unit-testing,datasource,testcase,microsoft-test-manager,C#,Unit Testing,Datasource,Testcase,Microsoft Test Manager,我用DataSource属性修饰测试方法,如: [DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, "Test Case#", DataAccessMethod.Sequential), TestMethod] 将MTM中的测试用例编号替换为“测试用例”。我试图在单元测试中得到这个数字,但是TestContext.DataRow.Table.TableName总是“Table1”。有人能告诉我如何获得真正的值吗?除非我错了,否则“

我用
DataSource
属性修饰测试方法,如:

[DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING, 
"Test Case#", DataAccessMethod.Sequential), 
TestMethod]
将MTM中的测试用例编号替换为“测试用例”。我试图在单元测试中得到这个数字,但是
TestContext.DataRow.Table.TableName
总是“Table1”。有人能告诉我如何获得真正的值吗?

除非我错了,否则“TestCase#”不能被MTM替换,所以很可能您已经在所有
数据源属性中手动添加了它

该值是
常量
。为什么不在
TestClass
中添加一个常量变量,然后在
DataSourceAttribute
TestMethod
中使用它呢


编辑 您还可以直接访问
数据源属性

[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;
    }
}
除非我错了,“TestCase#”不能被MTM替换,所以很可能您已经在所有
数据源
属性中手动添加了它

该值是
常量
。为什么不在
TestClass
中添加一个常量变量,然后在
DataSourceAttribute
TestMethod
中使用它呢


编辑 您还可以直接访问
数据源属性

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

是的,我已经手动添加了它。目前我不得不这样做,但我更喜欢在数据源中声明一次,然后在TestContext中访问它。我认为应该填充TestContext.DataRow.Table.TableName对吗?是的,我也尝试过,并且
TableName
始终是“Table1”。如果这对您有帮助,请检查我编辑的答案。然而,我仍然相信如果你使用一个常量变量会更容易。是的,我已经手动添加了它。目前我不得不这样做,但我更喜欢在数据源中声明一次,然后在TestContext中访问它。我认为应该填充TestContext.DataRow.Table.TableName对吗?是的,我也尝试过,并且
TableName
始终是“Table1”。如果这对您有帮助,请检查我编辑的答案。然而,我仍然相信如果你使用一个常量变量会更容易。