2011-02-02 13 views
0

私が知る限り、アドインを含むアセンブリはC:\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\addinsになければなりません。 addinsディレクトリのアセンブリを置き換える前に、NUnit-guiを閉じる必要があるため、アセンブリがロードされていると思います。しかし、問題は、アドインの効果が表示されないことです(イベントハンドラが呼び出されていない)NUnit Addinがロードされたことを確認する方法を教えてください。

So addinがロードされたことを確認するにはどうすればよいですか?私はデバッガをステップアップしたいと思っていますが、私は印刷ラインのデバッグには全く満足しています。 File.WriteAllText()を実行しようとすると、アドインの読み込みに失敗しましたが、理由はありませんでした。また、ローディングプロセスをどのようにデバッグするのですか?

NUnit docsは役に立ちますが、拡張性に関しては最高の状態であり、NUnit.Coreではクラスに利用可能なインテリセンスはありません。

答えて

1

oneのようなトレースライブラリを使用してください。hereをダウンロードできます。 今、あなたはこのようなステートメントを使用して、あなたの関連するメソッドを飾ることができます:

using ApiChange.Infrastructure; 
class MyAddin 
{ 
    static TypeHashes myType = new TypeHashes(typeof(MyAddin); 

    void RelevantMethod() 
    { 
     using (Tracer t = new Tracer(myType, "RelevantMethod")) 
     { 
      .... 
      if(bLoaded == false) 
      t.Error("Could not load adding because of {0}", reason); 
     } 
    } 
} 

その後、あなたはDebugOutputは(なし添付のSysinternalsツールDbgViewで見ることができ、環境変数_TRACE経由

set _Trace=debugoutput 

をトレースを有効にすることができます単にそれを開始し、トレースを見る)。 それとも実行可能で、例えばここで

set _Trace=file 

ファイルにトレーストレースファイルが配置されていますNunit.exe.txt。 _TRACEに何らかのランダムな文字列を設定すると、コンソールへのヘルプとOutputDebugStringがトレースされ、ヘルプが表示されます。

なぜこのトレースライブラリですか?実際には、あなたのメソッドが残っているときに例外をトレースすることができる唯一のものです。これは、メソッドが上記のようなトレースのためにステートメントを使用している場合に機能します。 NUnitがあなたのプラグインを無視することを実際にあなたのせいにしているなら、あなたは今見つけ出すことができます。 出力は次のようになります。

* ApiChange.IntegrationTests.Diagnostics.TracingTests.Demo_Show_Leaving_Trace_With_Exception 18:57:46.665 03064/05180 < {{>は 18をApiChange.IntegrationTests.Diagnostics.TracingTests.SomeMethod :57:46.668 03064/05180 < {:57:{>は 18 ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod 46.670 03064/05180 <}} < ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod例外スロー:System.NotImplementedException:こんにちはこれは欠陥で でApiChange ApiChange.IntegrationTests.Diagnostics.TracingTests.Demo_Show_Leaving_Trace_With_ExceptionでApiChange.IntegrationTests.Diagnostics.TracingTests.SomeMethod() でApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod() で.IntegrationTests.Diagnostics.TracingTests.FaultyMethod() () 18:57:46.670 03064/05180 <}} < ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod時間2msの 18:57:46.689 03064/05180 <}} < ApiChange.IntegrationTests.Diagnostics.TracingTests。SomeMethod Duration 24ms

これは、あなたのアドインがまったく使われなかった理由を簡単に見つけ出すはずです。デバッガは必要ありません;-)。

ユアーズ、 アロイス・クラウス

+0

うわー、これは非常に便利ですね。私はそれを試してみましょう... – kelloti

+0

それは動作しましたか?上記のヒント以外にも、1.0.0.1リリースをダウンロードして、ApiChange.Api.dllへの参照を追加するだけで、トレース機能を利用することができます。 –

関連する問題