2017-01-26 9 views
0

SetupFixture属性を持つクラスを作成して、統合テストアセンブリの必要に応じて1回のセットアップを行うことができました。SetupFixtureはResharperでグループ化されたテストを実行できません

[SetUpFixture] 
public static class IntegrationTestsBase 
{ 
    public static IKernel Kernel; 

    [SetUp] 
    public static void RunBeforeAnyTests() 
    { 
     Kernel = new StandardKernel(); 
     if (Kernel == null) 
      throw new Exception("Ninject failure on test base startup!"); 

     Kernel.Load(new ConfigModule()); 
     Kernel.Load(new RepositoryModule()); 
    } 

    [TearDown] 
    public static void RunAfterAnyTests() 
    { 
     Kernel.Dispose(); 
    } 
} 

リハーサルユニットテストセッションウィンドウには、[プロジェクトと名前空間]が設定されています。

の検索結果を:テストさえMSTESTランナーでこれらのテストを実行してみました明示的

実行する必要があります無視

:私は、このインスタンスのクラスを使用する場合は、Resharpersユニットテストセッションは、と言っていますメッセージ:IntegrationTestsBaseは抽象クラスです。

私はこのクラスを名前空間にラップしようとしましたが、何も変更されませんでした。個々のテストを1つずつ実行すると、実行されますが、GUIからすべて実行することはできません。

このアセンブリに含まれるすべてのテストを実行できるようにするにはどうすればこの問題を解決できますか?

NUnitの2.6.4、ReSharperの2015.2とVS2015の更新使用したTestClassを、それがTestframeworkによってインスタンスを取得しますと静的クラスは通常、インスタンス化できないような静的である必要はありません。1.

答えて

1

Kernelプロパティ以外のキーワードstaticを削除するのが最も簡単な解決方法です。

[SetUpFixture] 
public class IntegrationTestsBase 
{ 
    public static IKernel Kernel; 

    [SetUp] 
    public void RunBeforeAnyTests() 
    { 
     Kernel = new StandardKernel(); 
     if (Kernel == null) 
      throw new Exception("Ninject failure on test base startup!"); 

     Kernel.Load(new ConfigModule()); 
     Kernel.Load(new RepositoryModule()); 
    } 

    [TearDown] 
    public void RunAfterAnyTests() 
    { 
     Kernel.Dispose(); 
    } 
} 

あなたはこのテストは複数のスレッドで実行されている場合、Kernelでクラスが単一のテストに隔離されていないので、今すぐ共有されているKernelに入れてどんなことを覚えておいてください。あなたが気づいているか補償しておくべきものです。

関連する問題