如何在method's属性中设置通用路径

本文关键字:属性 设置 路径 method | 更新日期: 2023-09-27 18:16:50

我写了一个测试。我使用数据驱动单元测试。我的方法声明如下:

[TestCategory("IntegrationTest")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"C:''MyProjectPath''File.csv", "File#csv",
DataAccessMethod.Sequential), DeploymentItem("File.csv"),
TestMethod]
public void Read_CSV_File_Attribute()

我想提交我的更改到源代码管理。我遇到的问题是数据源属性中的硬编码路径:"C:'MyProjectPath'File.csv"。

如果有人想从存储库中获得这个代码的最新版本,那么这个人必须更改这个属性中的路径。

如何使通用路径,将工作为我所有的c级员工?


我试图通过使用:

改变路径
MethodInfo method = typeof(TestClass).GetMethod("Read_CSV_File_Attribute");
method.CustomAttributes.ElementAt(1).ConstructorArguments.ElementAt(1).Value = _newPath;

它不能工作,因为Value是只读的


[TestCategory("IntegrationTest")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
Path.Combine(), "File#csv",
DataAccessMethod.Sequential), DeploymentItem("File.csv"),
TestMethod]
public void Read_CSV_File_Attribute()

Combine()抛出一个消息:Cannot resolve symbol 'Combine'.


我也尝试使用ConfigurationManager类,但我得到一个信息:类名在这一点上是无效的。

如何在method's属性中设置通用路径

  1. 包括File.csv到你的项目并复制到输出目录(右键单击File.csv在解决方案=>属性=>高级=>复制到输出目录=>如果更新则复制)

  2. 使用相对路径到DataSourceAttribute:

    中的"File.csv"
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
            "File.csv", "File#csv", DataAccessMethod.Sequential)]
    

我遇到的问题是由于文件夹结构。我在解决方案资源管理器中设置了如下结构:

TestProject
  -> Folder1
    -> Folder2
      -> File.csv
      -> Tests.cs

我做了测试。在bin/debug文件夹中,我没有看到File.csv。csv文件在文件夹结构中:

bin
  -> debug 
    -> Folder1
      -> Folder2
        -> File.csv

我的问题的解决方案是改变路径到file:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
        @"Folder1'Folder2'File.csv", "File#csv", DataAccessMethod.Sequential)]