LINQPadでは、System.Diagnostics
名前空間のとTrace.Assert()
が期待どおりに動作しません。 のために設定されているメッセージボックスをポップアップするのではなく、単に "Fail:"または "Fehler:"を出力ウィンドウに表示して、プログラムを気楽に続けることができます。言い換えれば、騒々しい、無視できない爆発の代わりに、テキストの出力に「失敗:」を散らす、目に見えないマイクロファットしかありません。LINQPad:アサート()が "失敗:"を出力し、破損する代わりに続行します。
Assert()
をLINQPadでデフォルトの動作に戻す方法はありますか?
Trace.Assert()
を偽装するという簡単な方法があります。その結果、騒々しい爆発(例外、メッセージボックスなど)が発生し、失敗の原因が行番号などの形で特定されます。
私の単体テストはTrace.Assert()
に基づいています。これは、その機能が失敗した時点でプログラムを中断できない場合、それらを完全に無駄にします。
Visual Studioでは、すべて正常に動作しますが、LINQPadでは動作しません。私はシステム全体の設定を手こずっぱりにしていませんが、ある時点でMonoをインストールしました。私は細かい櫛でLINQPadのすべての設定を行ったが、役に立たない。 LINQPadのバージョンは4.57.02(無料)で、Windows 7 Pro(ドイツ語)とWindows 8.1 Pro(英語)で動作します。
私は高いと広い検索しましたが、私は見つけることができる唯一のことは、トピックTrace.Assert not breaking, neither showing the message boxここにスタックオーバーフローです。そのタイトルは確かに有望に見えますが、その答えはありません。
P.S:私はLINQスクリプトに
class Trace
{
public static void Assert (bool condition)
{
if (!condition)
throw new Exception("FAIL!");
}
}
を追加し、throw
の文にブレークポイントを設定することでからかってみました。 LINQPadのデバッガで関連するコールスタックエントリをクリックすると関連するソース行に移動するので、このような仕組みになります。しかし、私はthrow
にブレークポイントを設定する代わりに、ソースコードから直接デバッガを呼び出すFoxProのSET DEBUG ON
に相当するものを見つけることができませんでした。
( 'Util.Breakをお試しください); 'デバッガを直接呼び出す。 – sgmoore
@sgmoore:ありがとう、とても便利です! – DarthGizka