2012-05-08 18 views
8

セットアップメソッドが呼び出され、テストが呼び出されているセットアップメソッドに依存しているため、テストにデバッグしようとしています。Nunitが実行されていないVisual StudioデバッグモードでSetUpメソッド

Nunit 2.6.0.12051を使って.NET 4.0クラスライブラリをテストしています。 nunit Visual Studioプロジェクトには、[SetUpFixture]とマークされたクラスと、[SetUp]とマークされたメソッドがあります。

私がNUnit GUIからテストを実行すると、セットアップ属性クラスが呼び出されていることがわかります(これはランタイムエラーが発生したセットアップクラスでは停止していないためです)デバッグしてください。 Verbose Tracingを参照するように設定を変更しようとすると、NUnit guiは未処理の控訴を投げます。

Visual Studioからテストビュー/デバッグ選択を介してテストを実行すると、セットアップメソッドのブレークポイントは実行を停止せず、メソッド内のトレースステートメントはデバッグウィンドウに表示されません。だから私はセットアップ方法が呼び出されていないと確信しています。

セットアップクラスをすべてのテストクラスのベースに変更できますが、メソッドを一度実行するだけで済みます。

何か助けが素晴らしいだろう。

+0

技術的な回答がなく、設計の観点からこれを検討しています。私は属性を削除し、それに依存するテスト(テストの90%)からメソッドを呼び出すつもりです。このメソッドは、以前に実行されていない場合にのみ作業を行うフラグも持ちます。これにより、各テストが何が起きるのかを簡単に判読できるようになります。何かをセットアップメソッドやベースクラスを探すのではなく、簡単に見つけることができます。 – DFBerry

答えて

2

NuGet(2.6)の最新のNUnitを使用しているときに気がつきました。 [Setup]メソッドは[Test]メソッドの前には実行されません。

なぜNUnitのかなりの部分が変更されたのかわかりませんが、[テスト]の前に[セットアップ]を実行するバージョン2.5.10に戻って修正しました。

+0

私はちょうどこれに遭遇しましたので、それでも2.6.2の問題です – Jammer

+2

[SetUp]は大文字と小文字を区別しています。少なくとも、v2.6.4で私が誤って別の[Setup]おそらくNUnitまたはVSによって追加された属性です。 –

1

私もこの問題を抱えていましたが、テストランナー(私の場合はTestDriven.NET)の最新バージョンをインストールすると修正されました。私にはNUnitの問題ではありませんでした。

「これは、下のすべてのテスト・フィクスチャのためのワンタイムセットアップやティアダウンメソッドを含むクラスをマーク属性である:私はこの問題に遭遇し、最終的にNUnit SetUpFixture documentationからこの重要な文を見つけ

3

与えられた名前空間。

私のSetUpFixtureクラスはテストとはまったく異なる名前空間になっていたので、実行されていませんでした。

関連する問題