1

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

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

用 MTM 中的测试用例编号替换“Test Case#”。我试图在单元测试中获得该数字,但TestContext.DataRow.Table.TableName始终是“Table1”。谁能告诉我如何获得真正的价值?

4

1 回答 1

1

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

该值为constant。为什么不向 your 添加一个常量变量TestClass,然后在 theDataSourceAttribute和 your上使用它TestMethod


编辑
您也可以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;
    }
}
于 2012-03-11T13:11:38.510 回答