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

我有 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 指令或程序集引用?)


我错过了什么吗?


HUWWW
浏览 315回答 2
2回答

沧海一幻觉

您使用的是 .NET Core 吗?适配器的 .Net Core 版本尚不支持此处指定的 DataSource https://github.com/Microsoft/testfx/issues/233

莫回无

只需使用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"]); 
打开App,查看更多内容
随时随地看视频慕课网APP