2017-11-28 18 views
1

私は自分のベースクラスを実装する子クラスを持ち、ベースクラスは[TestClass]デコレータを持っています。子クラスのSetupメソッドを基本クラスから呼び出したいが、デバッグ中に実行しても子クラスが作成されず、理由がわからない。これは私が持っているものです。MsユニットテストフレームワークのTestInitializeのメソッドを無効にする

[TestClass] 
public class BaseTestClass 
{ 

    [TestInitialize] 
    public virtual void Setup() { } 
} 

は、その後、私はこれを持っている子クラスで:

public class Child : BaseTestClass 
{ 
     public override void Setup() 
     { 
     // A lot of setup code 
     } 

} 

オーバーライドセットアップ()メソッドが呼び出されることはありません。私は間違って何をしていますか?ありがとう

+1

属性を基本クラスに配置しないで、実際のテストクラスのみを配置します。 – Eris

+2

属性でオーバーライドしているメソッドをマークし、再試行してください。 –

+0

あなたがしていることは何でも奇妙に思えます。 –

答えて

0

@KeithNicholasあなたは私がやっていたことについて考えさせてくれました。私は間違った方法でこれについてやっていたと思います。私はこのようになり、それを変更:

[TestClass] 
public class Child : Base 
{ 

// All tests go here 
[TestMethod] 
public void TestSomething() 
{ } 



public class Base 
{ 
    // declare variables 

    [TestInitialize] 
    public void Setup() 
    { 
    // Create test records 
    } 

    [TestCleanup] 
    public void Teardown() 
    { 
    // Delete test records 
    } 

私は方法が優れているか分からないが、唯一の[TestInitialize]を入れたときに、私もオーバーライドセットアップにステップ実行()メソッドを得ることができませんでしたそのメソッドのデコレータのみ。

関連する問題