[解決済み] Visual Studioで単体テストの実行順序を制御する
質問
さて、これに関する良い情報を探すのはもうやめました。 私は、一度初期化されると、変更できない(または私が望まない)プロパティを設定する静的クラスを呼び出す一連のユニットテストを持っています。
私の問題は、テストが実行されるための一定の順序を強制できないことです。もしそうすることができれば、静的プロパティが信頼できる方法で設定されるようにそれらを実行することができ、それらについてアサートすることができますが、残念ながら Microsoft.VisualStudio.TestTools.UnitTesting フレームワークは一見ランダムに見える順序でそれらを実行するだけです。
そこで、私はこれを見つけました。 http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.priorityattribute.aspx には、備考欄に "この属性はテストシステムで使用されていません。カスタムの目的でユーザーに提供されています。それじゃ、何の役に立つんだ?この素晴らしい属性を利用するために、独自のテスト用ラッパーを書けというのでしょうか(そのレベルの努力をしようと思えば、私自身簡単に書けるのですが・・・)。
それで、暴言はもう十分です。要するに、私のユニットテストの実行順序を制御する方法はあるのでしょうか?
[TestMethod]
[Priority(0)]
などは動作しないようですが、Microsoft が動作しないと言っているのですから、これは理にかなっています。
また、quot;violation" についてのコメントはご遠慮ください。TestClass は私がテストしているものを分離するものであり、個々の TestMethods を分離するものではありません。とにかく、各テストは独立してうまく実行できますが、静的クラスを解体する方法がないため、ランダムな順序で一緒に実行することはできません。
ああ、私はまた、"Ordered Test"について知っています。
どのように解決するのですか?
テストを1つの巨大なテストにマージするのが効果的です。テストメソッドをより読みやすくするために、次のようなことができます。
[TestMethod]
public void MyIntegratonTestLikeUnitTest()
{
AssertScenarioA();
AssertScenarioB();
....
}
private void AssertScenarioA()
{
// Assert
}
private void AssertScenarioB()
{
// Assert
}
実際、あなたが抱えている問題は、おそらく実装のテスト容易性を向上させるべきであることを示唆しています。
関連
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み] コードが含まれるアセンブリのパスを取得するにはどうすればよいですか?
-
[解決済み] ディレクトリ内のすべてのPythonユニットテストを実行するにはどうすればよいですか?
-
[解決済み】典型的なテストディレクトリ構造でunittestを実行する
-
[解決済み] Unit Testsでランダムデータ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない