2016-05-23 20 views
2

私の[AssemblyCleanup]メソッドが呼び出されていないところに問題があります。AssemblyCleanup実行されていません。

私は現在、自動化フレームワークを構築しており、テストの前後にいくつかのAPI呼び出しを行いたいと考えています。私はアセンブリの初期化/クリーンアップメソッドを発見して以来、彼らは私がする必要があるために完璧に動作します。しかし、私は[AssemblyCleanup]メソッドを実行することができません。

私のテストには固有の基本クラスがあり、それで[AssemblyCleanup]メソッドを配置したいと思っています。

私のクラスです。

[TestClass] 
public class TestBaseChrome: WebDriver 
{ 
    public TestContext TestContext { get; set; } 

    [TestInitialize] 
    public void Initialize() 
    { 
     //Do Stuff Here for tests 
    } 

    [TestCleanup] 
    public void Cleanup() 
    { 
     //used for end of test reporting 
    } 

    [AssemblyCleanup] 
    public static void EndOfSuiteActions() 
    {    
     //Stuff here when whole test suite finished 
    } 
} 

私は例herehereを見て[AssemblyCleanup][TestClass]属性でクラスであることが必要であることを示してきました。実際のテストでクラスに[AssemblyCleanup]を配置すると、意図したとおりに動作します。しかし、私はすべての前のテスト/一度のテストの後にしたいです。

アドバイスをいただければ幸いです。

答えて

3

私は自分の質問に対する答えを見つけたと信じています。

[TestClass]が派生クラスの異なるアセンブリにある基本クラスから継承する場合、基本クラス[AssemblyInitialize]および[AssemblyCleanup]メソッドは実行されません。私の自動化テストは(テストを処理するための1のフレームワークを処理すると、1)溶液中で、ベースクラスは、フレームワークであるように、2つのプロジェクトではありますが、テストは、他のしているように

Source

プロジェクト。私はリンクの問題に遭遇する。

+1

これは私の問題でした。自分のフレームワークとテストを自分のソリューションの別々のプロジェクトで行い、SetupTeardownクラスがフレームワークプロジェクトに存在していました。 SetupTeardownクラスをテストプロジェクトに移動すると、 '[AssemblyInitialize]'と '[AssemblyCleanup]'は魅力的な働きをしました。 – Keith

関連する問題