簡體   English   中英

DeploymentItem在VS2010和VS2012中的行為方式不同

[英]DeploymentItem behaving differently in VS2010 and VS2012

我有一個VS2010解決方案,我正在嘗試升級到VS2012。

我在VS2012中遇到了MSTest單元測試的問題。 所有測試都包括測試類上的DeploymentItem屬性。

[TestClass]
[DeploymentItem(@"SubDir\SubDir2\models", "models")]
public class UnitTests
{ ... }

在2010年,它正確地從SolutionDirectory\\SubDir\\SubDir2\\models目錄中復制相關文件。

在2012年,它試圖從部署測試的目錄中復制SolutionDirectory\\UnitTests\\bin\\debug\\SubDir\\SubDir2\\models

我正在尋找一種方法來恢復舊的行為。

如果在解決方案中創建測試設置文件,請在其中啟用部署(默認情況下在測試設置中關閉部署)並在測試資源管理器中選擇它(測試 - >測試設置 - >選擇測試設置文件),然后它應該在不改變代碼的情況下工作。

安裝vs2012和.net 4.5之后,看起來deploymentitemattribute與移動文件的位置以及可執行文件在執行測試期間查找文件的位置不同步。

廉價的解決方法:

  1. 保留deploymentitemattribute路徑
  2. 查看文件的移動位置
  3. 更改測試代碼以查看該位置

在此升級之前,mstest非常智能,即使將它們移動到bin目錄中的子目錄,也可以找到部署項。 似乎不再是這種情況了。

因此,在升級之前,您的單元測試代碼行可能如下所示......

FileInfo fi = new FileInfo("temp.txt");

升級后,您的單元測試代碼行可能如下所示......

FileInfo fi = new FileInfo("\SubDir\SubDir2\models\temp.txt");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM