2016-11-08 69 views
1

我寫了一個測試。我使用數據驅動的單元測試。我的方法聲明如下所示:如何在方法的屬性中設置通用路徑

[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; 

因爲價值是隻讀的它不工作。


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

合併()拋出了一個消息:無法解析symbole '合併'。


我也嘗試過使用ConfigurationManager類,但是我得到一個信息:類名在這一點上是無效的。

回答

0
  1. 包括FILE.CSV到您的項目,並將其複製到輸出目錄(右鍵單擊FILE.CSV溶液=>屬性=>高級=>複製到輸出目錄=>複製如果更新)

  2. DataSourceAttribute使用相對路徑「FILE.CSV」:

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

我跟着你的腳步,我的測試失敗消息:單元測試適配器失敗連接到數據源或讀取數據。有關解決此錯誤的更多信息,請參閱「數據驅動的單元測試疑難解答」[...]。錯誤詳細信息:Microsoft Jet數據庫引擎找不到對象'File.csv'。確保對象存在,並且正確拼寫其名稱和路徑名。 當我寫[數據源(「Microsoft.VisualStudio.TestTools.DataSource.CSV」,「D:\\ File.csv」,「文件#csv」,DataAccessMethod.Sequential)]然後測試工程。 – Jaryn

+1

@Jaryn是否將File.csv文件複製到測試項目的bin/debug文件夾中?你是否手動將文件放在「D:\\」上?是否有可能檢查System.Environment.CurrentDirectory和System.AppDomain.CurrentDomain.BaseDirectory值? –

0

我的打擊,因爲一個文件夾結構發生的問題。我在我的解決方案資源管理器中有一個像folllow結構:

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

我跑了測試。在bin/debug文件夾中,我沒有看到File.csv。 FILE.CSV是文件夾裏面結構法:

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

我的問題的解決方案是更改文件路徑:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
     @"Folder1\Folder2\File.csv", "File#csv", DataAccessMethod.Sequential)] 
相關問題