(小ネタ)Chaining AssertionのParameterized TestでどのTest Caseで失敗したかを記録する
Chaining Assertionでは、Parameterized Testがサポートされているが、テストが失敗した時のメッセージにはどのケースで失敗したかの情報は含まれていないため、多くのテストケースを試す場合は以下のように工夫すると良い感じです。
//公式サンプルコードを一部修正 [TestClass] public class UnitTest { public TestContext TestContext { get; set; } [TestMethod] [TestCase(1, 1, 2, 3)] //第1引数を追加 [TestCase(2, 10, 20, 30)] //第1引数を追加 [TestCase(3, 100, 200, 300)] //第1引数を追加 public void TestMethod2() { TestContext.Run((int i, int x, int y, int z) => { Console.WriteLine($"ケースNo.{i:D2} x={x}, y={y}, z={z}") //第1引数をケースNo.としてコンソール出力 (x + y).Is(z); (x + y + z).Is(i => i < 1000); }); } }
テスト結果の出力画面を表示すると、テストが失敗したところでコンソール出力が終了しているので、どこで失敗したかがわかるようになります。
実行環境
- Visual Studio 2015 Professional
- ChainingAssertion 1.7.1.0