Использование TypeMock Isolator.Swap.AllInstances <T>в нагрузочном тесте Visual Studio? - PullRequest
0 голосов
/ 30 июля 2009

У меня есть следующие настройки тестов.

[TestClass,
Isolated]
public class TestClass
{
    public TestClass()
    {
    }

    private TestContext testContextInstance;
    public TestContext TestContext
    {
        get { return testContextInstance; }
        set { testContextInstance = value; }
    }

    [ClassInitialize,
    Isolated]
    public static void InitializeRunState(TestContext testContext)
    {
        Helpers.SetupMocks();
        //do some class init stuff
    }

    [TestInitialize]
    public void InitializeTestState()
    {
        Helpers.SetupMocks();
    }

    [TestMethod]
    public void Test()
    {
        //execute test
    }
}

В методе Helpers.SetupMocks() я звоню на Isolator.Swap.AllInstances<T>().

Это прекрасно работает, пока я не выполняю нагрузочный тест. Как только я настрою нагрузочный тест, который выполнит метод Test, TypeMock начнет выдавать это исключение:

TypeMock.TypeMockException: *** Невозможно вызвать Swap.AllInstances () более одного раза для типа.

Есть ли способ избежать этого? У меня что-то настроено неправильно?

1 Ответ

2 голосов
/ 30 июля 2009

Отказ от ответственности Я работаю в Typemock

Сначала обратите внимание, что мы выкидываем это исключение, потому что на самом деле нет смысла подделывать все экземпляры типа более одного раза, и мы хотим, чтобы пользователь знал, что он, вероятно, допустил ошибку. Я думаю, что проблема в том, что при запуске нагрузочных тестов mstest параллельно запускает несколько экземпляров тестового класса.
В этом случае вам следует переместить вызов Isolator.Swap.AllInstances () из настройки класса в методы тестирования.
Это может сработать, если при выполнении mstest тесты не будут выполняться параллельно в одном и том же классе. К сожалению, похоже, что mstest не имеет аргумента командной строки для переопределения этого поведения.

...