Ich möchte einen benutzerdefinierten Testreporter zu NUnit hinzufügen. Ich habe es bereits mit NUnit2 gemacht, aber jetzt muss ich NUnit3 verwenden.Wie wird ITestEventListener in NUnit 3 verwendet?
Um den Reporter zu implementieren, muss ich verschiedene Ereignisse aus dem Framework, wie Start, Ende und Fehler der Tests erhalten.
In NUnit2 verwendete ich die NUnitHook mein EventListner und es funktionierte ziemlich gut zu registrieren.
In NUnit3 muss ich den Erweiterungspunktmechanismus verwenden, aber wenn ich den Erweiterungspunkt dem Projekt hinzufüge, kann VisualStudio (2012 ultimate) sofort die NUnit-Tests nicht entdecken.
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener : ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
Wenn ich die ITestEventListener Implementierung Erklärung aus der Klasse entfernen, neu entdeckt es die Tests perfekt.
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener //: ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
Mache ich etwas falsch? Gibt es einen besseren Weg, es zu erreichen?
ich meine Antwort bin Korrektur um die Tatsache widerzuspiegeln, dass der Benutzer-Code das falsche Attribut verwendet. – Charlie
Danke, mir ist es gelungen, das Addin zu schreiben. Jetzt ist das Problem, dass ich es auch von VS ausführen muss, und mein Verständnis ist, dass das noch nicht unterstützt wird. Ich freue mich auf diese Verbesserung. –
Es kann wahrscheinlich gemacht werden, auf Ihrem lokalen Rechner zu arbeiten, indem Sie die NuGet-Installation verwenden und eine .addins-Datei im Paketverzeichnis mit dem richtigen relativen Pfad darin erstellen. Aber es würde nicht automatisch bei der Paketwiederherstellung funktionieren, was es in vielen Umgebungen ausschließt.Darüber hinaus muss es warten, bis der Adapter ein Standard-Engine-Paket anstelle einer benutzerdefinierten Kopie der Engine verwendet. – Charlie