1

実行可能ファイルが正しく機能することをテストするために、さまざまなコマンドラインオプションを使用してWindows実行可能ファイルを実行するテストスイートがあります。一部のテストケースでは、これらの引数によって実行可能ファイルがひどく壊れ、次のダイアログが表示されます。

ここに画像の説明を入力してください

残念ながら、このダイアログは、手動で[中止] 、 [再試行] 、または[無視]を押すまで表示されます。これにより、これらのテストを自動化された方法で実行できなくなります。運が悪かったので、さまざまなCDBオプションを使用してWindowsCDBデバッガーを介して実行可能ファイルを呼び出してみました。

これらのダイアログが表示されないようにする、または自動的にテストを続行するにはどうすればよいですか?

4

2 に答える 2

0

ウィンドウのタイトルから、プログラムのデバッグビルドをテストしていることがわかります。これは良い習慣ではありません。顧客のマシンで実行する方法でプログラムをテストしているわけではありません。デバッグビルドは、プログラマーがコードをデバッグするのに適しています。しかし、それは時々バグを隠します。このようなバグは診断が非常に難しい場合があり、それらを洗い流すためのテストが必要です。あなたはそのようなテストを行っていません。

リリースビルドのみをテストします。これにより、このダイアログの問題も自動的に解決されますが、CRTのリリースバージョンでは表示されません。

ところで:テストは失敗しました。

于 2013-01-23T01:39:34.670 に答える
0

のMicrosoftCランタイムライブラリのマニュアルページに記載されているabort()ように、このメッセージボックスは、MicrosoftCRTのデバッグバージョンにリンクするときに表示されます。メッセージを回避するためにリリースCRTにリンクできますが、代わりにWindowsがクラッシュをトラップし(abort()はCRTによってプログラムクラッシュと見なされるため)、代わりにWindowsエラー報告メッセージが表示されます。

マニュアルページには、Microsoft拡張_set_abort_behavior()機能を使用してコード内のメッセージボックスを無効にできることも記載されていますそのルートを使用する場合は、コマンドラインスイッチなどを使用して、メッセージを有効にするかどうかを制御する方法が必要になる場合があります。

于 2013-01-23T04:57:07.360 に答える