Are there non-static equivalents to MSTest's [ClassCleanup] & [ClassInitialize]?

I am using MSTest for some system/integration level tests, and I don't want to have to worry about cleaning & initializing the connection in the tests.

Example Code:

[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);
    }
}
有帮助吗?

解决方案

Answering your question, as far as i know - No, there isn't a non-static equivalent in MSTest.

But:

  1. looking at your code, there is no reason why _cookie and _soap shouldn't be made static, along with Initialize and TearDown. Doing so will let you forget the configuration worries during test writing...
  2. If you are willing to "jump ship", The NUnit equivalents for [ClassCleanup] & [ClassInitialize] can be applied to static & instance methods.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top