9

VS2012 にアップグレードしようとしている VS2010 ソリューションがあります。

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

古い動作を復元する方法を探しています。

4

2 に答える 2

4

ソリューションでテスト設定ファイルを作成し、その展開を有効にして(デフォルトでは、テスト設定で展開がオフになっています)、テストエクスプローラーで選択します([テスト]->[テスト設定]->[テスト設定ファイルの選択])。コードを変更せずに動作します。

于 2013-02-19T19:38:17.240 に答える
1

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");
于 2012-08-28T17:18:23.653 に答える