6

NUnit によって生成された TestResult.xml ファイル内に実際に表示されるように、単体テストに「メッセージ」を追加できるようにしたいと考えています。たとえば、これは現在生成されています。

<results>
    <test-case name="MyNamespace.Tests.MyTest" executed="True" success="True" time="0.203" asserts="4" />
</results>

次のような追加の属性 (場合によってはノード) を使用できるようにしたいと考えています。

<results>
    <test-case name="MyNamespace.Tests.MyTest" executed="True" success="True" time="0.203" asserts="4" message="Tested that some condition was met." />
</results>

アイデアは、上記の「メッセージ」が何らかの方法でテスト メソッド自体の中で定義されるということです (私の場合は、実行時に生成されます)。このようなことができるようにするには、どこかに行方不明のプロパティがありますか?

4

4 に答える 4

6

最近の NUnit リリースでは、次のことができます。

Assert.AreEqual(250.00, destination.Balance, "some message here");

「Some message here」は、定数メッセージまたは実行時に生成されて文字列変数に格納されたメッセージです。これらのメッセージは、アサーションが失敗した場合にのみ出力に表示されます。ただし、通常は失敗したテストに関する情報のみが必要なので、前の各メッセージを追加して文字列を作成し、その文字列変数をすべてのアサートでメッセージとして使用することをお勧めします。これにより、失敗したテストから必要なすべての情報を取得できます。

于 2008-12-04T02:10:40.257 に答える
2

これは的外れかもしれませんが、何をテストするかを示すようにテストに名前を付けてみてはどうでしょうか。そうすれば、メッセージさえ必​​要ないかもしれません。

絶対に必要であることが判明した場合は、TestCase から追加の属性を (私の頭の上から) 読み取り、それを出力に添付する独自のテストランナーを作成する必要があると思います。

于 2008-09-04T20:03:00.997 に答える
0

実行時に利用できるものは何も表示されませんが、調査したほうがよい機能がいくつかあります。Description属性とProperty属性はどちらも、テキストを XML 出力ファイルに追加します。残念ながら、どちらもコンパイル時に定義されています。

于 2008-10-01T20:15:30.983 に答える