Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MS Visual Studio单元测试中引用数据源目录?_C#_Unit Testing_App Config - Fatal编程技术网

C# 如何在MS Visual Studio单元测试中引用数据源目录?

C# 如何在MS Visual Studio单元测试中引用数据源目录?,c#,unit-testing,app-config,C#,Unit Testing,App Config,我已在MS Visual Studio中创建了一个App.config文件。App.config文件的内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.Unit

我已在MS Visual Studio中创建了一个App.config文件。App.config文件的内容如下:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </configSections>
  <connectionStrings>
    <add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=TestCases\data.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
  </connectionStrings>
  <microsoft.visualstudio.testtools>
    <dataSources>
      <add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="TestData$" dataAccessMethod="Sequential"/>
    </dataSources>
  </microsoft.visualstudio.testtools>
</configuration>


我在App.config文件所在的目录中创建了一个名为“TestCases”的文件夹。我将data.xlsx文件放在TestCases文件夹中。仅供参考,data.xlsx是我的单元测试的数据源。我将数据源的目录编码为TestCases\data.xlsx,但它不起作用。我不想硬编码为“C:\User….”,因为如果我想在另一台计算机上运行代码,这需要我更改代码。有什么建议吗?

有几个选择

  • 这是最简单的。在测试类或测试方法上设置
    [DeploymentItem(“YourExcelFile”)]
    属性,这样您就可以使用
    \YourExcelFile
    的相对路径从配置中引用它们

  • 这个更难,因为MsTest总是将TestResults文件夹放在同一个位置(相对于您的解决方案),您可以使用
    。\..\..\..\Project\YourExcelFile
    路径访问它。但是请注意,TFS的团队构建可能使用不同的相对路径,在您知道之前,您需要在构建系统中进行一些技巧才能使其工作

  • 将Excel文件复制到众所周知的位置,如
    c:\TestSources\MyDataSource
    ,并使用TFVC源代码管理工作区设置将文件映射到该位置。这将允许您的测试配置指向它应该始终能够找到的完整路径