により、MSTEST TestMethodはすべてリセットされsingletons/統計前。
-
08-07-2019 - |
質問
を使用していMSTEST内Visual Studio2008年.方法を教えてください各ユニットの試験方法が定試験クラスと同じように対応するかの試験を行うすべてのグローバルリセットの実行前にそれぞれの試験?したいと思わないを明示的に清掃を利用して世界のTestInitialize,ClassInitialize,AssemblyInitialize。例えば:
[TestClass]
public class MyClassTests
{
[TestMethod]
public void Test1()
{
// The "Instance" property creates a new instance of "SomeSingleton"
// if it hasn't been created before.
var i1 = SomeSingleton.Instance;
...
}
[TestMethod]
public void Test2()
{
// When I select "Test1" and "Test2" to run, I'd like Test2
// to have a new AppDomain feel so that the static variable inside
// of "SomeSingleton" is reset (it was previously set in Test1) on
// the call to ".Instance"
var i2 = SomeSingleton.Instance;
// some code
}
は 類似の問題 登場したことで明らかにする試験を実行しません。この試験走行を直列あるという事を明示的に新たなる力AppDomainの各メソッド(または等価として使えます。
理想的には、そういった指定はこの動作のみの小さなサブセットの単位で試験を行いないのは刑新AppDomain作成のための試験がどんなグローバルな状態(多くの)。
解決
最終的にまとめたりのヘルパーを用いた AppDomain.CreateDomain を用いた反射電話のユニット試験はどのような由来があるのですかAppDomain.この分離があります。
このポスト にMSDNのフォーラムに示すような状況があれば数統計ることを再設定する必要があります。 で なんかオプション例反射および PrivateType ).
また、メールについてのご連絡をお待さらにアイデア、特にがんに何かが足りないっつMSTEST.
他のヒント
追加のヘルパーにテストを使用する反射を削除するsingletonインスタンス(追加することができますリセット方式のシングルトンがい者。のようなもの:
public static class SingletonHelper {
public static void CleanDALFactory()
{
typeof(DalFactory)
.GetField("_instance",BindingFlags.Static | BindingFlags.NonPublic)
.SetValue(null, null);
}
}
電話おTestInitialize方法です。[ごきげんよう、トメ子です"クリーニングの世界"だけを書く方法に一度のヘルパー当たりシングルトンは、その非自明なときに明示的な制御]
と思いを探してTestIntialize属性のTestCleanUpの属性。ここでは、MSDNのブログの実行順序リンクテキストをドキュメント
また、同様の問題が生じてMSTests.取り扱いまでを呼び出すことによって機能のその場合には、特定の試験を実施するに必要なのです。
して保存試験の終了日から当アプリを設定します。三試験に必要なこめるので、特定の範囲の決定に適切な値です。のように応用する設定の設定値がリセットされる場合がありませんでした値を与えます。そのために新たなプライベート-静的機能を明示的に設定値へ指定された日付とを明日からセッション試験後に運行しています。当社のつの試験またはこれら二つの機能この場合、その走行試験の申請は空の値の日付とrefetchesしてから設定ファイルを指定します。
なんなのかそれとも、どのようにして同様の問題です。