如何在 MS Visual Studio 单元测试中引用数据源目录?
How to refer to the datasource directory in MS Visual Studio unit test?
我在 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....",因为如果我想 运行 另一台计算机上的代码,这将需要我更改代码。有什么建议吗?
有几个选项
这是最简单的一个。在您的测试 class 或测试方法上设置一个 [DeploymentItem("YourExcelFile")]
属性,这样您就可以使用 .\YourExcelFile
.
[=26= 的相对路径从您的配置中引用它们]
这个比较难,因为 MsTest 总是将 TestResults 文件夹放在相同的位置(相对于您的解决方案),您可以使用 ..\..\..\..\Project\YourExcelFile
路径。但请注意,TFS 的 Team Build 可能会使用不同的相对路径,在您知道之前,您需要在构建系统中进行一些技巧才能使其正常工作。
将 Excel 文件复制到一个众所周知的位置,例如 c:\TestSources\MyDataSource
并使用您的 TFVC 源代码管理工作区设置将文件映射到该位置。这将允许您的测试配置指向完整路径,它应该始终能够找到。
我在 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....",因为如果我想 运行 另一台计算机上的代码,这将需要我更改代码。有什么建议吗?
有几个选项
这是最简单的一个。在您的测试 class 或测试方法上设置一个
[=26= 的相对路径从您的配置中引用它们][DeploymentItem("YourExcelFile")]
属性,这样您就可以使用.\YourExcelFile
.这个比较难,因为 MsTest 总是将 TestResults 文件夹放在相同的位置(相对于您的解决方案),您可以使用
..\..\..\..\Project\YourExcelFile
路径。但请注意,TFS 的 Team Build 可能会使用不同的相对路径,在您知道之前,您需要在构建系统中进行一些技巧才能使其正常工作。将 Excel 文件复制到一个众所周知的位置,例如
c:\TestSources\MyDataSource
并使用您的 TFVC 源代码管理工作区设置将文件映射到该位置。这将允许您的测试配置指向完整路径,它应该始终能够找到。