2010-06-18 12 views
6

Ich frage mich, ob es möglich ist, Leistungstests basierend auf xUnit auszuführen?Leistungstests mit xUnit-Framework

+4

Fragen Sie nach dem xUnit.net-Framework oder nach irgendeinem 'xUnit'-Framework (wie im Buch * xUnit Test Patterns * definiert)? –

Antwort

0

Für JUnit können Sie sich JUnitPerf ansehen.

Wenn Sie in einer anderen Sprache und einer anderen xUnit arbeiten, können das JunitPerf-Designkonzept (dekorieren von normalen JUnit-Tests) und Code Anregungen geben, wie Sie dasselbe in Ihrer Sprache tun können.

4

Nicht sicher, was genau Sie fragen, aber Sie können leicht Ihr eigenes benutzerdefiniertes Attribut schreiben, um das zu tun. Für ein Beispiel ..

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] 
public class TraceAttribute : BeforeAfterTestAttribute 
{ 

    public override void Before(MethodInfo methodUnderTest) 
    { 
     //Start timer 
    } 


    public override void After(MethodInfo methodUnderTest) 
    { 
     //End timer 
    } 
} 

Dann schmücken Sie Ihren Unit Test mit diesem Attribut. Stellen Sie außerdem sicher, dass Sie auf einen Ausgang schreiben;)

+0

für einige Fälle kann es tatsächlich helfen - aber nur für diejenigen, wenn ein Testlauf LONG genug ist, damit der (highperf) Zeitgeber tatsächlich tickt, und natürlich gibt es klassische Probleme mit Nebenläufigkeit und nichtdeterministischen Wartezeiten, die vom OS eingespritzt werden. echte Lösung würde zumindest den gegebenen Unit-Test durchlaufen, dh. 100 Mal und messen Sie die Durchschnittsgeschwindigkeit. ABER, in xUnit, weiß ich derzeit keinen besseren Weg, um die Zeit zu messen, als die, die du präsentiert hast, und so gibt es ein +1 für dich :) – quetzalcoatl

Verwandte Themen