0

MTM を介して 30 を少し超えるテストを実行するスイートがあります。これらはセレン テストであり、実行に 20 分強かかります。これらのテストのうち 6 つ (2 つのテスト、それぞれ 3 つの反復) はプロジェクトにとって新しいものであり、実行するたびに同じ理由でエラーが発生します。

問題は次のとおりです。 1. ローカルでパスする 2. 個別に実行するとパスする

特定のエラーは、Castle ActiveRecord からのもので、コードで最も確実に初期化したクラスを初期化するように指示しています。

[TestMethod]
public void Test(){
    Initialize();
    //do test
}

public void Initialize(){
    if(!ActiveRecordStarter.IsInitialized){
        Type[] types = //typeof each castle class;
        InPlaceConfigurationSource source = new InPlaceConfigurationSource();
        //set up source
        ...
        ActiveRecordStarter.Initialize(source, types);
    }
}
4

1 に答える 1

0

MTM は、アセンブリを再起動せずにすべてのテストを実行します。Castle テストが失敗したテストの前に実行された場合、ActiveRecordStarter が初期化され、テストを通じて初期化されたままになります。何らかの理由で、私のテストではこれが気に入らなかったのですが (理由についてはまだ回答がありません)、チェックのActiveRecordStarter.ResetInitializationFlag();前に呼び出すとIsInitializedエラーが修正されました。

于 2016-03-02T20:23:13.980 に答える