为了账号安全,请及时绑定邮箱和手机立即绑定

“TestContext”不包含“DataRow”的定义

“TestContext”不包含“DataRow”的定义

C#
HUWWW 2022-01-09 16:03:46
我有 UWP 项目。使用 VS Community 2017 我在我的解决方案中添加了一个单元测试(添加项目-> Windows 通用-> 单元测试应用程序(Windows 通用)),我添加了对我的项目的引用,我添加了带有测试数据的 .csv 文件,我添加了 DataSource 属性using System; using Microsoft.VisualStudio.TestTools.UnitTesting;namespace UnitTestProject1{ [TestClass] public class UnitTest1 {  private TestContext testContextInstance;  public TestContext TestContext  {   get { return testContextInstance; }   set { testContextInstance = value; }  }  [TestMethod()]  [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",   @".\TestData.csv", "TestData#csv", DataAccessMethod.Sequential)]  public void ParameterizedTest()  {     int value = Convert.ToInt32(TestContext.DataRow["Row1"]); 但我仍然不能使用TestContext.DataRow错误 CS1061“TestContext”不包含“DataRow”的定义,并且找不到接受“TestContext”类型的第一个参数的可访问扩展方法“DataRow”(您是否缺少 using 指令或程序集引用?)我错过了什么吗?
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您使用的是 .NET Core 吗?

适配器的 .Net Core 版本尚不支持此处指定的 DataSource https://github.com/Microsoft/testfx/issues/233


查看完整回答
反对 回复 2022-01-09
?
莫回无

TA贡献1865条经验 获得超7个赞

只需使用testContextInstance.DataRow["Row1"]并可以选择在其末尾添加toString,例如testContextInstance.DataRow["Row1"].ToString()


你犯了一个常见的错误,你试图使用TextContext.DataRow,其中TextContext是一个没有名为DataRow 的静态属性的类,所以为了使用它,你需要创建一个你已经调用的类的实例testContextInstance。


还将属性名称从TextContent更改为TextContextInstance,如下所示


private TestContext testContextInstance;

public TestContext TestContextInstance

{

   get { return testContextInstance; }

   set { testContextInstance = value; }

}

因为当您进行此更改时,您永远不应该将属性命名为与其类型(类)完全相同,您甚至可以像之前尝试的那样直接使用该属性。


int value = Convert.ToInt32(TestContextInstance.DataRow["Row1"]); 


查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 314 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号