Template:Infobox Software FireBenchmarks è un addin opensource per NUnit in grado di registrare il tempo di esecuzione di test unitari e generare report di performance, grafici e diagrammi in formato XML, CSV, HTML.

Il suo scopo principale è di consentire ad uno sviluppatore o ad un team che lavora tramite l'approccio XP ed altre methodologie agili come il TDD, di migliorare la qualità del software

Caratteristiche

L'architettura di FireBenchmarks [1] è fondata sull'interface EventListeners[2] di NUnit.

Ogni test di NUnit può essere associato all'attributo "marcatore" NJC_TestPerformanceRecorder, in modo che l'addin possa identificare il metodo come test di performance

L'attributo NJC_TestPerformanceRecorder contiene inoltre una serie di proprietà opzionali che consentono allo sviluppatore di specificare metadati e parametri che vanno a modificare e configurare il report di output generato dall'addin per lo specifico test.

Requisiti

FireBenchmarsk necessita di NUnit 2.5.0 o successivo.

Esempi

Esempio 1[3]: un test unitario in grado di tracciare il tempo di esecuzione...

  • nel filesystem (scelta di default: non c'e' necessità di specificare il parametro OutputTargetKind se questa è la modalità desiderata)
  • in un file XML usato come archivio di tracciamento storico
  • il cui nome di file è basato sul nome del metodo di test, quindi "MyTestMethod.xml"
  • il cui file di report è creato nella cartella "C:\MyProjects\MyTests\PerformanceRepository"
  • sovrascrivendo eventuali precedenti tracciamenti
  • senza specificare un nome identificativo del test
  • senza specificare una descrizione testuale del test


[Test]
[NJC_TestPerformanceRecorder
(
OutputTargetFormat = NJC_TestPerformanceTargetFormat.Xml, // Output di tipo xml
OutputTargetIdentificationFormat = NJC_TestPerformanceTargetIdentificationFormat.MethodName, // Usare il nome del metodo per generare il nome del file di report
OutputTarget = "C:\\MyProjects\\MyTests\\PerformanceRepository", // Cartella di destinazione: in un'applicazione reale, una costante sarebbe maggiormente consigliata di una stringa hard-codata nel codice dell'attributo
OutputTargetWriteMode = NJC_TestPerformanceTargetWriteMode.OverWrite // sovrascrive gli eventuali precedenti tracciamenti
)]

public void MyTestMethod()
{
    /* scrivere qui il codice da testare E tracciare*/
}


Esempio 2[4]: un test unitario in grado di tracciare il tempo di esecuzione...

  • nel filesystem (scelta di default: non c'e' necessità di specificare il parametro OutputTargetKind se questa è la modalità desiderata)
  • in un file XML usato come archivio di tracciamento storico
  • in un file XHTML usato come report visuale
  • il cui nome di file è basato sul full name della classe e del metodo di test "MyTestNameSpace.MyTestClass.MyTestMethod.html"
  • il cui file di report è creato nella cartella "C:\MyProjects\MyTests\PerformanceRepository"
  • accodando il tracciamento corrente ad eventuali precedenti tracciamenti
  • specificando un nome identificativo del test
  • specificando una descrizione testuale del test


[Test]
[NJC_TestPerformanceRecorder
(
Name = "Performance test 1",
Description = "This is a unit test used as performance tracking element",
OutputTargetFormat = NJC_TestPerformanceTargetFormat.Html, // Output di tipo XHTML
OutputTargetIdentificationFormat = NJC_TestPerformanceTargetIdentificationFormat.ClassFullNameAndMethodName, // full name della classe e del metodo di test
OutputTarget = "C:\\MyProjects\\MyTests\\PerformanceRepository", // Cartella di destinazione: in un'applicazione reale, una costante sarebbe maggiormente consigliata di una stringa hard-codata nel codice dell'attributo
OutputTargetWriteMode = NJC_TestPerformanceTargetWriteMode.Append // accoda gli eventuali precedenti tracciamenti
)]
public void MyTestMethod()
{
     /* scrivere qui il codice da testare E tracciare*/
}

Note

Voci correlate

  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica