問題タブ [mbunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - Gallio / MbUnit で実行されるテストは失敗します。Castle DynamicProxyをロードできません
約 4000 MbUnit テストでカバーされた .NET 3.5 アセンブリがあります。問題なく mbunit.cons.exe プログラムを使用してこれらを実行しています。
現在、Gallio に切り替えようとしています (XML レポートの作成時に mbunit.cons.exe が「メモリ不足」の例外で爆発し始めました)。
Icarus でテストを実行すると、ほとんどのテストが失敗し、次の例外が発生します。
テスト対象のアセンブリは動的プロキシを使用します。動的プロキシ アセンブリは、テスト対象のアセンブリと同じディレクトリにあります。
アセンブリを含むディレクトリを Icarus の「ヒント ディレクトリ」、「アプリケーション ベース ディレクトリ」、および「作業ディレクトリ」フィールドに配置しようとしましたが、結果は変わりません。
Gallio と Dynamic Proxy を一緒に使用して成功した人はいますか、それとも問題の可能性に関するヒントはありますか?
c# - MbUnit で同じ 2 つのオブジェクトを比較する
MBUnit から、2 つのオブジェクトの値が同じかどうかを確認しようとしています。
ただし、次の失敗が発生します。
注意 : どちらの値もフォーマットすると同じように見えますが、異なるインスタンスです。
各プロパティを通過する必要はありません。MbUnitからこれを行うことはできますか?
c# - MbUnit 3.1 の 2 つのリストを比較する
MbUnit 3.1 で 2 つの Dictionary オブジェクトの等価性を比較しようとしています。
FieldList は =Dictionary<string, object>
ただし、これにより次の「エラー」がスローされます。
どちらの値もフォーマットすると同じように見えますが、異なるインスタンスです。
インスタンスではなくオブジェクト データを比較する方法はありますか?
前もって感謝します...
c# - 異なるバージョンの外部dllAPIに対してプロジェクトを単体テストするにはどうすればよいですか?
外部dllに大きく依存するアプリを開発しています。アプリは、古いバージョンとの下位互換性だけでなく、新しいバージョンのdllもサポートする必要があります。
新しいバージョンのAPIがリリースされたらすぐにテストを書き直す必要なしに、単体テストでこれらの異なるdllバージョンすべてをターゲットにする良い方法はありますか?これはどのように処理するのが最適ですか?
ありがとう!
methods - MBUnit - シーケンスで同じメソッドを複数回呼び出す?
MBUnit で、シーケンス内の異なるパラメーターを使用して同じテストを複数回呼び出す方法はありますか?
Method1() Method2(param A) Method3() Method2(ParamB) Method4() Method2(ParamC)
等?Order パラメーターを使用してみましたが、残念ながら、Ordering がテスト全体ではなくクラス全体と見なされることを期待しすぎていました (1,2a,2b ではなく 1,2,3,4,5,6、 2c,3,4)。
selenium - Selenium Grid は、登録済みのすべての RC を常に使用するとは限りません。なぜですか?
私のSelenium Gridの設定は次のとおりです(すべてのVM)
VM1 - Windows 7 x64 Windows XP x32 - グリッド ハブ + デフォルトの *firefox 環境を登録する 2 つの RC
VM2 - Windows XP x32 - デフォルトの *firefox 環境を登録する 2 つの RC
VM3 - Windows XP x32 - デフォルトの *firefox 環境を登録する 2 つの RC
私は喜んで Mbunit と Gallio を使用してグリッドを駆動していますが、私の問題は、ハブ コンソールで RC が表示されているにもかかわらず、グリッド ハブが 1 つまたは複数の RC に実行を渡すのを停止することがあるということです。彼らは喜んでハートビートをハブに戻しているように見えますが、それ以上の作業を求められることはありません。これは、テスト実行の早い段階でテストを実行した後です。
なぜこれが起こるべきなのか誰にも考えがありますか? 私が観察したすべてのケースで、RC が最後に実行したテストは、ハブによって無視されたように見える前に合格し、セッションは正常に閉じられました。興味深いことに、2 つ以上の RC で発生した場合は常に (これまでのところ) 同じ VM で実行されているペアでした。それでも、彼らはなんとかハートビートを維持しているので、ネットワーク接続の問題ではありません.
どんな助けでも大歓迎です!
更新:トラブルシューティングをさらに試みた結果、別のことがわかりました。まず、Win7 VM を XP ベースの VM に交換しました。これは、一貫性を保つためと、ハブが新しい OS で実行されている可能性がある問題を除外するためです。その変更を反映するために上記を更新しました。
その変更後、ハブは一貫して 6 つの登録済み RC のうち最大 5 つしか使用しなくなりました。どの RC が使用されないかは、ハブに最後に登録されたマシン上の 2 つのうちの 1 つです。したがって、VM1 でハブを開始し、VM2 と VM3 で RC を開始してから、VM1 で RC を開始すると、VM1 の 2 つの RC のうちの 1 つが使用されることはありません。
wpf - Unit Testing: hard dependency MessageBox.Show()
What ways can the SampleConfirmationDialog be unit tested? The SampleConfirmationDialog would be exercised via acceptance tests, however how could we unit test it, seeing as MessageBox is not abstract and no matching interface?
#xA;c# - MbUnit の [Parallelizable] と DegreeOfParallelism はどのように機能しますか?
MbUnit の並列テスト実行がどのように機能するかは理解できたと思いますが、私が見ている動作は私の予想とは大きく異なり、何かが欠けているのではないかと疑っています!
同時に実行したい一連の UI テストがあります。すべてのテストは同じアセンブリにあり、3 つの異なる名前空間に分割されています。すべてのテストは互いに完全に独立しているため、すべてを並列実行できるようにしたいと考えています。
そのために、AssemblyInfo.cs に次のように記述します。
私の理解では、このアセンブリ属性の組み合わせにより、すべてのテストが考慮され[Parallelizable]、テスト ランナーは実行中に 8 つのスレッドを使用する必要があるということでした。私の個々のテストは[Test]属性でマークされており、他には何もマークされていません。それらのどれもがデータ駆動型ではありません。
ただし、実際には、使用されているスレッドはせいぜい 5 ~ 6 であり、テストの実行に必要以上に時間がかかっています。
何か不足していますか?ランナーが 8 つのスレッドすべてを確実に使用できるようにするために、他に何かする必要はありますか?
注: 使用するランナーに関係なく、動作は同じです。GUI、コマンド ライン、および TD.Net ランナーはすべて上記と同じように動作します。
編集:コメントで指摘されているように、私は MbUnit の v3.1 (アップデート 2 ビルド 397) を実行しています。ドキュメントは、アセンブリ レベルの属性が利用可能であることを示唆してい[parallelizable]ますが、まだ利用できないにもかかわらず、フレームワークの v3.2 を参照しているようにも見えます。
EDIT 2:さらに明確にするために、私のアセンブリの構造は次のとおりです。
編集 3: OK、一度に 1 つのフィクスチャしか実行しない場合、同時に実行されるテストの最大数は常に 8 であることに気付きました。複数のフィクスチャを選択するとすぐに、5 または 6 に減少します。 2 つのフィクスチャ (現在、それぞれに 12 個のテストが含まれています) の内容を取得し、それらを同じフィクスチャ (1 つのフィクスチャで合計 24 個のテスト) にドロップします。このフィクスチャは、常に 8 つのテストを同時に実行します。
これは、個々のテストの問題ではなく、アセンブリ レベルの属性がフィクスチャに浸透する方法、またはテスト ランナーがそれらの属性を消費する方法に問題があることを示しているようです。
さらに、(2 つのフィクスチャを実行しているときに) 2 つのフィクスチャのうちの 1 つが完全に実行されると、ランナーは 1 つのフィクスチャのみの実行に戻ると、より多くのテストを同時に実行し始めることも観察しました。私の場合、最初のフィクスチャの実行は、2 番目のフィクスチャで実行するテストが 7 つ残っているときに完了します。それが起こるとすぐに、同時に実行されるテストの数は、以前の 5 または 6 から利用可能な最大 7 に跳ね上がります。
c# - 失敗したテストの自動再実行
正常に動作するSelenium/MbUnitテストのセットがありますが、実行に時間がかかる傾向があります(4時間以上)。私が見つけた問題は、実行時に20回に1回のテストがタイムアウトするように見えることです。Selenium GRIDが機能していて、Selenium RCがすべて正常であることを確認しました。これは、システムの問題のようです。しかし、本当に厄介なのは、これらのテストを再度実行すると、通常は合格するということです。
私が知りたいのは、特定のタイプの例外がキャッチされた場合に(おそらくコード内で)テストを自動再実行する方法があるかどうかです...
私はcatchステートメントに数行のコードを入れようとしましたが、これはテストを再実行するための非常にハッキーな方法であることを知っています。コードは次のとおりです。
助言がありますか?
continuous-integration - MbUnit テストで Gallio を実行するために最低限必要なバイナリは何ですか?
最近、アプリケーションを .Net 4.0 にアップグレードしました。MbUnit 2.x を使用していました。.Net 4.0 にアップグレードすると、MbUnit テストが実行されないようです。それと戦うのではなく、Gallio テスト ランナーが同梱されている MbUnit v3 にアップグレードすることにしました。
必要最小限のバイナリ/ファイルを、svn にチェックインされているプロジェクト フォルダーのサード パーティ フォルダー内の Nant フォルダーに配置したいと考えています。このようにして、ビルド サーバーと開発者は、Gallio/MbUnit をインストールする必要なく、単体テストを実行できます。
MbUnit テストと Icarus および Echo の実行に必要なバイナリ/構成ファイルの最小リストは何ですか?