Frage

Ich habe den folgenden Tests Setup.

[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
    }
}

In Helpers.SetupMocks() Methode, die ich mache einen Aufruf an Isolator.Swap.AllInstances<T>().

Dies funktioniert gut, solange ich nicht einen Lasttest ausgeführt wird. Sobald ich einen Belastungstest konfigurieren, dass die Test Methode ausgeführt wird TypeMock diese Ausnahme beginnt zu werfen:

  

TypeMock.TypeMockException: *** Kann nicht nennen Swap.AllInstances () mehr als einmal an einem Typ.

Gibt es das überhaupt zu vermeiden? Habe ich etwas falsch konfiguriert?

War es hilfreich?

Lösung

Haftungsausschluss I bei Typemock arbeiten

Zunächst ist zu beachten, dass wir diese Ausnahme aus, denn es gibt wirklich keinen Sinn, alle Instanzen eines Typs in Fälschen mehr als einmal, und wir wollen, dass der Benutzer weiß, dass er wahrscheinlich einen Fehler gemacht.
Ich denke, das Problem ist, dass, wenn Sie die Belastungstests laufen MSTest läuft wenige Instanzen der Testklasse parallel.
In diesem Fall sollten Sie den Anruf Isolator.Swap.AllInstances () aus der Klasse Setup auf die Testmethoden bewegen.
Es könnte funktionieren, wenn mstest läuft nicht die Tests parallel in der gleichen Klasse laufen. Leider scheint es, dass mstest kein Befehlszeilenargument hat für dieses Verhalten zu überschreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top