2012-01-19 10 views
11

MSTestの[ClassCleanup] & [ClassInitialize]には非静的な同等物がありますか?MSTestの[ClassCleanup]&[ClassInitialize]に非静的な同等物はありますか?

いくつかのシステム/統合レベルのテストではMSTestを使用していますが、テストで接続を初期化することについては心配する必要はありません。

コード例:

[TestClass] 
public class DefectCreatorTest 
{ 
    private long _cookie; 
    private soapcgi _soap; 

    [ClassInitialize] 
    public void Initialize() 
    { 
     _soap = new soapcgi {Url = "http://localhost:80/scripts/soapcgi.exe"}; 
     _cookie = Transaction.Login(_soap); 
    } 

    [ClassCleanup] 
    public void TearDown() 
    { 
     Transaction.Logout(_cookie, _soap); 
    } 

    [TestMethod] 
    public void CreateDefectTest() 
    { 
     var result = _soap.Foo(); 
     Assert.AreEqual("bar", result); 
    } 
} 
+0

静的でないとはどういう意味ですか?あなたのサンプルコードで何が問題になっていますか? – seldary

+0

サンプルコードはコンパイルされますが、実行されません。 ClassInitializeで装飾されたメソッドは、静的メソッドである必要があります。 –

+0

TestContextが使用されていなくても、InitializeメソッドがSetupメソッドに渡される必要があるため、テストは実行されませんでした。 –

答えて

6

は、私の知る限りでは、あなたの質問に答える - いいえ、MSTestをにおける非静等価がありません。

しかし:あなたのコードを見て

  1. _cookie_soapInitializeTearDownとともに、静的行われない理由はありません。そうすることで、あなたが「船をジャンプ」して喜んでいる場合は、[ClassCleanup] & [ClassInitialize]のためのNUnitの同等物は、&インスタンスメソッドを静的に適用することができ
  2. ...あなたは試し書き時の設定の心配を忘れるようになります。
関連する問題