Использование TypeMock Isolator.Swap.AllInstances < T > в нагрузочном тесте Visual Studio?

StackOverflow https://stackoverflow.com/questions/1206292

Вопрос

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

[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 () более одного раза для типа.

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top