5

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

ブレークポイントを設定してから「テスト | デバッグ | 現在のコンテキストでテスト」を実行するのと同じくらい簡単だと思っていましたが、設定したブレークポイントに実際にヒットすることはありません。

私は何か間違ったことをしていますか、それとも単に壊れていますか?

ありがとう、ブランドン

4

5 に答える 5

2

最初に aspnet_wp.exe プロセスに手動でアタッチしてから [テストのデバッグ] ボタンをクリックするまで、同じ問題がありました。その後、私のブレークポイントがついにヒットしました。

于 2009-08-13T17:25:00.380 に答える
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();

   } 
}
于 2011-10-03T10:18:22.817 に答える
0

以下を確認してください。

  • テストは と でマークされ[TestClass]てい[TestMethod]ますか?
  • デバッグ モードまたはリリース モードのビルドを実行していますか? (そうでない場合を除いて、大きな違いはありません) デバッグの方が優れています。
  • 最適化を使用して、または使用せずにコンパイルしていますか? ないほうがいい
  • ブレークポイントに到達したかどうかを確認して、ソリューション内のすべてのテストを実行してみてください
  • 最後に、おそらくバグがあり、それが原因でコードを実行していないのですか?
于 2009-07-07T08:39:40.807 に答える
0

nUnit を使用する場合は、次のことを行う必要があります

テストしたいDLLでNunitを起動します。次に、Visual Studio で [ツール] -> [プロセスにアタッチ] に移動します。

nunit プロセスを選択し、[アタッチ] をクリックすると、すべてのブレークポイントで停止します

楽しんで :-)

于 2009-08-13T17:30:25.437 に答える
0

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

.NET ランタイムは、デバッグ モードにダンプする (または実行中の単体テスト プログラムを閉じる、またはデバッグ ラインを無視する) ように求め、(場合によっては) 単体テストを起動した Visual Studio のインスタンスを使用してそうすることができます。新しい VS インスタンスからいつでもデバッグできます。そのSystem.Diagnostics.Debugger.Break()行にヒットすると、他のすべてのブレークポイントがアクティブになり、ヒットします (それらが実行スタックにあると仮定します)。

于 2010-06-17T22:05:32.690 に答える