2009-07-30 3 views
0

Ich habe die folgenden Tests eingerichtet.Verwenden von TypeMock Isolator.Swap.AllInstances <T> in einem Visual Studio Load Test?

[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 einen Aufruf an Isolator.Swap.AllInstances<T>() mache.

Das funktioniert großartig, solange ich keinen Belastungstest ausführe. Sobald konfiguriere ich einen Belastungstest, der 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 trotzdem, um dies zu vermeiden? Habe ich etwas falsch konfiguriert?

Antwort

2

Haftungsausschluss I bei Typemock arbeiten

Zunächst ist zu beachten, dass wir diese Ausnahme aus, weil es in fälscht alle Instanzen eines Typs mehr als einmal wirklich keinen Sinn, und wir wollen, dass der Benutzer weiß, dass er wahrscheinlich einen Fehler gemacht.
Ich denke, das Problem ist, dass, wenn Sie die Last-Tests ausführen mstest mehrere Instanzen der Test-Klasse parallel ausgeführt wird.
In diesem Fall sollten Sie den Aufruf von Isolator.Swap.AllInstances() von der Klasseneinrichtung zu den Testmethoden verschieben.
Es könnte funktionieren, wenn Mstest läuft, werden die Tests nicht parallel in der gleichen Klasse ausgeführt. Leider scheint MSTest kein Befehlszeilenargument zum Überschreiben dieses Verhaltens zu haben.

Verwandte Themen