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”。如果这对您有帮助,请检查我编辑的答案。然而,我仍然相信如果你使用一个常量变量会更容易。