2012-06-17 6 views
6

こんにちは私は、テストドリブン開発のホビープロジェクトとしてChess AIを作っています。しかし何らかの理由で私のテストで唯一のメッセージは "テストで例外がスローされました:..."です。したがって、重要なことだけを省略します。直接エラーを読むのではなく、テスト結果の詳細を右クリックして表示する必要があります。列の追加と削除を試みましたが、メッセージ全体を直接表示することはできません。ユニットテストで例外がスローされましたが、メッセージが表示されません

ユニットテストごとに例外メッセージが直接表示されるようにVS2010を設定できますか?

編集:私はstandaard VSユニットテストを使用しています:

[TestClass] 
public class MiniMaxTest 
{ 
    [TestMethod] 
    public void TestConstructor() 
    { 
     throw new Exception("Must I click view details to see this?"); 
    } 
} 

なぜこれらの質問?皆さんはこれらのことを再現することができます。デバッグまたは実行テストでは、同じメッセージが表示されます。 exception message remains hidden

+2

詳細を教えてください。たとえば、どのテストフレームワーク(MSTest)を使用していますか?あなたのテストはどのように見えますか? – stakx

+1

MSTestを使用していますか?ユニットテストツールを指定しない場合。また、テストメソッドをデバッグするだけではどうですか? – BrokenGlass

+0

この権利がある場合、メッセージを表示するフィールドまたは列が全体の例外を表示するには短すぎると言っていますか?単位テストは絶えず失敗するとは考えられないので、しばらくの間、「詳細を見るためにクリックする」ことはあまり大したことではありませんか? – Groo

答えて

2

いいえ、VSを構成して別の方法で表示することはできません。 IDEは例外メッセージの最初の行を表示し、完全なメッセージテキストに改行文字があるので、すべてを表示するには詳細をクリックする必要があります。

あなたはとなりますが、はあなた自身のメッセージを表示するためにMSTestフレームワークを乱用しています。

MSテストアサーションはすべて例外をスローすることによって実装されます。すべてのMSテストAssert関数は、UnitTestAssertExceptionから派生した例外をスローします。ビジュアルスタジオには、これらの種類の例外に対する特別な処理があります。あなたがこのテストを記述する場合:たとえば

[TestMethod] 
public void AllAboard() 
{ 
    throw new AssertFailedException("Failboat"); 
} 

AssertFailedExceptionは、他のほとんどのアサーションの失敗のための標準的な基底クラスです。

VS2010はではありません。は一般的な「テストが例外を投げました」というメッセージを出力しますが、単に「フェイルボート」と表示されます。

ここでは、通常の例外をAssertFailedExceptionに変換してテストを囲み、好きなメッセージを印刷することができます。もちろん

[TestMethod] 
public void TestStuff() 
{ 
    try 
    { 
     string o = null; // pretend this came from some real code 
     var x = o.Split(new[] { ',' }); // this will throw NullRefException 
    } 
    catch (Exception e) 
    { 
     throw new AssertFailedException(e.Message, e); 
    } 
} 

、私はそれが冗長だし、もっと重要なのは、あなたがコールスタックを失う...ちょっと、今、あなたはあなたのツールベルトに1つのより多くのツールを持っている...これをやって実際にはお勧めしません

+0

+1実行可能な解決策については、残念だと私は同意すると同意する – Basic

+0

@Basicええ、私はまったくこれをしないだろうが、VSはあなたに何かオプションを与えていないので...もしあなたがreaaaaaaaaaaaallyメッセージを変更したいなら、あなたは何をしなければなりません:-) –

関連する問題