46

私は xUnit を学んでいますが、これまでのところ、最も便利なツールであることがわかりました。代わりに、TDD に対する私のコーディング戦術のいくつかを再考させられています。

しかし、興味深い問題に遭遇しました。私のテストケースは失敗しています。本当の懸念はありませんが、どうすればデバッグできますか?

具体的には、「インデックス外」エラーまたは同様のエラーが原因で、テスト ケースが失敗しています。assert ステートメントで失敗していません。今必要なのは、Visual Studio デバッガーをアクティブにしてテスト ケースを実行し、さまざまな変数の状態を確認できる方法です。

このような状況が再び発生する可能性があるため、コードを投稿するつもりはありません。テストケース自体をデバッグする方法を知っている人はいますか?

ほとんど忘れていた!私が使っている、

  • Visual Studio 2010 Ultimate (Dreamspark ライセンス)
  • xUnit 1.9

私のワークフローでは、xUnit GUI ランナーを使用してテストを実行します。

私が求めていることが不可能な場合、誰かが私が望むものを備えた代替のテストスイートを提案できますか?

4

10 に答える 10

77

VS2015 以降では、 xunit.runner.visualstudio NuGet パッケージをインストールします。その後、テスト エクスプローラー ウィンドウでテストを右クリックするだけで簡単にデバッグできます。(表示されない場合は、[テスト] --> [Windows] --> [TestExplorer])。テストのコード内の任意の場所を右クリックして、テストの実行とテストのデバッグをコンテキスト メニューに表示することもできます。

ここに画像の説明を入力

于 2016-05-26T07:42:44.537 に答える
11

これはテストしていませんが、ビジュアル スタジオを xUnit GUI に接続して、そこからデバッグできるはずです。

[デバッグ] メニューから [プロセスにアタッチ] を選択し、リストで実行可能ファイルの名前を見つけて [アタッチ] をクリックします。必要に応じて単体テストにブレークポイントを設定し、GUI からテストを実行します。ブレークポイントは期待どおりにヒットするはずです。

于 2012-06-26T10:49:15.877 に答える
10

上記のすべての実装に失敗しましたが、次の方法でうまくいきました: デバッグする行の前に次の行を追加します (その後、テストを実行します):

        System.Diagnostics.Debugger.Launch();

欠点は、VS の別のインスタンスを起動することです:)。

乾杯!

于 2015-01-29T14:11:28.947 に答える
6

以下は、VS.NET および SharpDevelop で機能します。

テスト プロジェクトのプロパティを開き、[デバッグ] タブに移動します。

  • [アクションの開始] の下で、[外部プログラムの開始] を選択した xUnit ランナー実行可能ファイルに設定します。

  • [開始オプション] の下で、[コマンド ライン引数] をプロジェクトのデバッグ DLL の名前に設定します。

  • また、「作業ディレクトリ」をプロジェクトの「bin\Debug\」ディレクトリに設定します。

次に、[デバッグ] > [実行] を選択するか、F5 キーを押して、デバッグ モードでテストを実行します。ブレークポイントがヒットします。

この方法でデバッグを行う利点は、毎回 xUnit GUI にアタッチする必要がなく、テスト プロジェクトを実行するだけでよいことです。

于 2013-01-17T10:28:14.167 に答える
6

この質問への回答を参照してください:単体テストでのコードのステップ スルーとデバッグ

基本的に:

... VS のメイン メニューの [テスト] に移動し、サブメニューの [デバッグ] をクリックします。. .'.

VS2017を使用しても機能します;)

于 2019-04-12T08:17:24.707 に答える
3

2020 年の更新: OmniSharp で Visual Studio Code を使用している場合は、メソッドの上にある [テストのデバッグ] テキストをクリックできます。

OmniSharp と xUnit を使用した Visual Studio Code

于 2020-08-06T02:18:09.903 に答える