ユニットテストパスはデバッグが掛かりと実行を
-
17-09-2020 - |
質問
私は奇数の問題です。いユニット試験を続けており、また、にこだわった実行モードになります。かけると同試験のデバッグ、ブレークポイント、試験に渡します。
基本的には、このソケット接続テストです。初めて切断のソケット、そして再生さんを問わずいろいろな料理に使えば、再成功しました。
どこかの接続コードは、チェックがあった場合は、ソケット例外です。その場合、そのユーザーは一部の選択ダイアログが接続コードを掛介AutoResetEventのを待って決定します。
このAutoResetEventが掛かります。Itによって提供されなければならなコードのユニットテストです。私の質問は、是非足を運んでみて下さい。るこの攻撃パターンのデバッグモードになっていますか?ものがあるのか、それは何なのか特のデバッグモード制AutoResetEventsが自動設定Visual Studio?
編集
このレースの条件です。私は追加のコード後の切断コードで動作するようになりました。も打って数があるとレース状態。なお話をさせて頂きたいと思い貼り付ける一部のコードです。
このテストコード:
MySystem.FindEquipment(new List<string>(1) { "192.1.1.243:28000" });
MySystem.ConstructSystem();
MySystem.IsConstructedFlag.WaitOne();
Assert.AreEqual(1, MySystem.CommunicationController.HardwareIPList.Count);
PFFrame frame1 = MySystem.Frames["0.x.x"];
Assert.IsTrue(frame1.Disconnect());
Thread.Sleep(100);
Assert.IsTrue(frame1.Connect());
その理由をこの攻撃、とて皆様のお越しをお待ちしておりますのdiconnectコードの呼び出しの前に、接続コードです。この最後の切断のようなコードになります:
lclSocket.Shutdown(SocketShutdown.Both);
lclSocket.Close();
OnSocketDisconnected(new PFSocketConnectionEventArgs(ipEp));
return true;
ですのでソケットが開かれます。Shutdown()、および/またはソケットが開かれます。Close()メソッドでスレッド?このようにも思値を返すから切断コードのソケットな真の断線?
解決
そのようなレースの条件です。バーコード、通常走りの余分なものを下のフードは、この時期の違いは投げテストのoffになります。
もちろん見ることなくコード、おっさんありがとうございます。
他のヒント
そのためのネジレースです。彼らはとても感度のよいタイミングのタイミングのデバッグの構築をもらえることになりました。利用できるツールのようにチェスを行使するバグをするようです。
使用ツール+添付する工程。デバッグ+休憩、デバッグ+Windows+スレッドのスレッド呼びスタックを作ります。ることができるかもしれませの原因のレースまたはデッドロックします。
と似たような問題までと比べてコミック、期待される一日を、その他のものなので処刑されたが、受け取られると同時刻です。
この試験はないことがおわかり頂けるコードも必要とされているのではないから、ソケット図書館がされています。をコードする試験のないものに頼ってある遺物を-この図書館があります。を追加する必要があります抽象化とは、ソケット図書館の資料へのacoount.
こういうことを言うのは、この場合、ソケットを実際に切断123,251回 < 100mSecsが、123,252nd時間の切断か101mSecs.
Mystic villegeや、レストランがほとんどすべてのユニットテストコードを使用しないでねじ.眺めネジ通話の種類自分のユニットテストとして、コードの香りがする。通常が見たいスレッド問題の統合です。