[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()
我想将更改提交给源代码管理。我遇到的问题是DataSource属性中的硬编码路径:“C:\ MyProjectPath \ File.csv”。
如果有人从存储库中获取此代码的最新版本,则此人必须更改此属性中的路径。
如何制定适用于所有c-worker的通用路径?
我尝试使用以下方法更改路径:
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()会抛出一条消息:无法解析symbole'Combine'。
我也尝试使用ConfigurationManager类,但是我得到了一个信息:此时类名无效。
答案 0 :(得分:0)
将File.csv包含到项目中并将其复制到输出目录(右键单击解决方案中的File.csv => Properties => Advanced =>复制到输出目录=>如果更新则复制)
在DataSourceAttribute
中使用“File.csv”的相对路径:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"File.csv", "File#csv", DataAccessMethod.Sequential)]
答案 1 :(得分:0)
我遇到的问题是由于文件夹结构而发生的。我在我的解决方案资源管理器中有一个像folllow一样的结构:
TestProject
-> Folder1
-> Folder2
-> File.csv
-> Tests.cs
我跑了测试。在bin / debug文件夹中,我没有看到File.csv。 File.csv在文件夹structre:中
bin
-> debug
-> Folder1
-> Folder2
-> File.csv
我的问题的解决方案是将路径更改为文件:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
@"Folder1\Folder2\File.csv", "File#csv", DataAccessMethod.Sequential)]