我有用DataSource
属性装饰的测试方法,比如:
[DataSource(PROVIDER_INVARIANT_NAME, CONNECTION_STRING,
"Test Case#", DataAccessMethod.Sequential),
TestMethod]
MTM中的测试用例编号替换为"测试用例#"。我试图在单元测试中得到这个数字,但TestContext.DataRow.Table.TableName
总是"Table1"。有人能告诉我如何获得真正的价值吗?
除非我错了,否则"TestCase#"不能被MTM取代,所以很可能你已经在所有DataSource
属性中手动添加了它。
此值为constant
。为什么不在TestClass
中添加一个常量变量,然后在DataSourceAttribute
和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;
}
}