10

入力として 2 つの XML ファイルを受け取り、それらを比較するテスト メソッドがあります。Microsoft.VisualStudio.TestTools.UnitTestingでフレームワークを使用してい.NET 4.5ます。複数の XML ファイル (一度に 2 つ) を取り、テストを実行して結果を個別に提供するように、テスト メソッドを変更したいと考えています。

次のコードを試してみましたが、単一の出力しか得られず、入力ファイルのペアがテストに失敗すると停止します。

 string[] source = {file1, file2, file3, file4....};
 string[] target = {fileA, fileB, fileC, fileD....};

 [Test Method]
 public void TestCase01()
 {
      TestLogic testObj = new TestLogic(); //class containing the comparison method
      for (int i = 0; i < source.Length; i++)
      {
            Assert.IsTrue (testObj.VerifyFiles(source[i], target[i]));
      }
 }

いくつかの調査を行ったところ、DataSource属性を使用できることがわかりました。DataSourceしかし、属性に 2 つの配列 (または 1 つの 2 次元配列) を渡す方法がわかりません。最後の手段として、Microsoft.VisualStudio.TestTools.UnitTestingテストやその他のサードパーティのフレームワークに使用することをお勧めします。NUnit

編集: 入力ファイルの数がわかりません。例として 4 つのファイルを使用しました。ファイルを TestMethod に渡す前に、ID を使用してそれらをペアにします。そのため、最初に 2 つの異なるフォルダーから 2 つのファイル セットを読み取り、ID に基づいてそれらをペアにしてから、ペアになったファイルをテスト用のテスト ケースに渡します。私が現在行っている方法は、ペアになったファイル名 (ソースとターゲット) を配列またはリストに保存し、それらをテスト ケースに渡すことです。明らかに、この方法は機能しておらず、上記の問題が発生しています。

4

3 に答える 3

2

同様の問題があり、最後にこのブログ投稿の推奨事項に従いました。

匿名型の配列を使用して一連の条件を格納し、LINQ の ForEach() メソッドを使用して配列をループし、各要素のテストを実行しました。

于 2016-01-20T14:27:18.747 に答える