2010-06-18 17 views
6

Je me demande s'il est possible d'exécuter des tests de performance basés sur xUnit?Tests de performance utilisant le framework xUnit

+4

Est-ce que vous posez des questions sur le framework xUnit.net, ou simplement sur n'importe quel framework 'xUnit' (tel que défini par le livre * xUnit Test Patterns *)? –

Répondre

0

Pour JUnit, vous pouvez consulter JUnitPerf. Si vous travaillez dans une langue différente et avec un xUnit différent, le concept de conception de JunitPerf (décrivant les tests JUnit normaux) et le code peuvent donner des idées sur la façon de faire la même chose dans votre langue.

4

Vous ne savez pas exactement ce que vous demandez, mais vous pouvez facilement écrire votre propre attribut personnalisé pour le faire. Pour un exemple ..

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

Puis décorez votre test d'unité avec cet attribut. Assurez-vous également d'écrire sur une sortie;)

+0

dans certains cas cela peut vraiment aider - mais seulement pour ceux-là, quand un test est assez LONG pour que la minuterie (highperf) coïncide, et bien sûr il y a des problèmes classiques avec les accès concurrents et non déterministes injectés par le système d'exploitation. solution réelle serait au moins exécuter le test unitaire donné à savoir. 100 fois et mesurez la vitesse moyenne. MAIS, en xUnit, je ne connais actuellement pas de meilleure façon de mesurer le temps que celui que vous avez présenté, et donc il y a un +1 pour vous :) – quetzalcoatl