2009-07-07 12 views
5

Visual Studio 2008で単体テストの一部をデバッグしようとしていて、ブレークポイントが実行を停止していないように見えます。VS 2008のユニットテストケースのデバッグ

私は、ブレークポイントを設定してから "Test | Debug | Tests in current context"を実行するのと同じように思っていましたが、実際に設定したブレークポイントには決して到達しません。

私は何か間違っているのですか?これはちょうど壊れていますか?

おかげで、次のよう ブランドン

+0

これはマイクロソフトのテストフレームワークですか、それとも何か他のものを使用していますか? –

+0

通常、すべてのテストを実行するだけで、アセンブリがロードされ、ブレークポイントが有効になります。たぶん何らかの理由であなたのアセンブリがロードされない(ここでMSのフレームワークを前提とする) –

答えて

0

チェック:

  • [TestClass][TestMethod]でマークされたテストはありますか?
  • デバッグモードまたはリリースモードビルドを実行していますか? (それ以外は大きな違いはありません)デバッグが優れています。
  • 最適化の有無にかかわらずコンパイルしていますか?なしが良い
  • ブレークポイントを打つと、すべてのテストをチェックしてください。
  • 最後に、バグがある可能性があります。
2

手動でaspnet_wp.exeプロセスに手作業で接続してDebug Testsボタンをクリックするまでは、同じ問題がありました。その後、私のブレークポイントはついに打たれました。あなたはNUnitのを使用している場合

+0

私はそれを接続しようとしたときにaspnet_wp.exeが表示されませんでした。どんな考え? –

0

は、あなたがテストしたいDLLと

開始NUnitの次の操作を行う必要があります。 し、Visual Studioで [ツール] -

があなたのNUnitのプロセスを選択してクリックし、「添付」プロセスにアタッチ>それはすべてあなたのブレークポイントで停止します

0

公式:-)楽しみを持っていますMicrosoft workaround/kludge/zomg-I-can't-believe-they-can't-be-arsed-to-provide-this-after-4-years(VS2010、VS2008、およびVS2005のMSTEST用)は、デバッグを開始するユニットテストにSystem.Diagnostics.Debugger.Break()を追加することです。これは、単体テストプロジェクトで参照されるデバッグシンボルを持つすべてのプロジェクトで機能します。

.NETランタイムは、デバッグモードにダンプする(または実行ユニットテストプログラムを閉じる、またはデバッグラインを無視する)ように促します。また、ユニットテストを開始したVisual Studioのインスタンスを使用できるようにします。そうする。常に新しいVSインスタンスからデバッグできます。そのSystem.Diagnostics.Debugger.Break()行に達すると、他のすべてのブレークポイントがアクティブになり、ヒットします(実行スタック内にあると仮定して)。

1

私の場合、System.Diagnostics.Debugger.Break()は試験方法で停止しません。

[TestClass] 
public class ContactListTest 
{ 
    #region "Constants" 
    public const string COVERAGE = "CoverageService"; 

    public const string CompanyList = "CompanyList"; 
    public const string ContactList = "ContactList"; 
    #endregion 

    [TestMethod] 
    public void GetContactListTest() 
    { 
     System.Diagnostics.Debugger.Break(); 

     var ex = new ServiceFilterExpression(COVERAGE); 
     ex.Expression = new OpBeginsWith("Type", ContactList); 
     var result = ex.FetchData(); 

    } 
} 
関連する問題