Ich versuche, in C# geschriebene Nunit-Testfälle mit einem Konsolenprogramm auszuführen. Bis jetzt habe ich verschiedene Möglichkeiten ausprobiert, aber ich war nicht in der Lage, einen perfekten Weg zu finden, um das Gleiche zu erreichen.Ausführen von Nunit-Tests in C# und Erfassen der Ausführungsprotokolle
Vorgehensweise 1: Verwenden des NUnitTestAdapter-Pakets. Dieses Paket ist älter und kann den Test, der mit der neuesten Version von Nunit Version 3.2.1 erstellt wurde, nicht ausführen. Aber seine Arbeit gut mit älteren Versionen wie 2.6.4
Added NUnitTestAdapter Paket zur Lösung versucht dann den Code unten
CoreExtensions.Host.InitializeService();
TestSuiteBuilder builder = new TestSuiteBuilder();
TestPackage testPackage = new TestPackage(@"path to dll");
RemoteTestRunner remoteTestRunner = new RemoteTestRunner();
remoteTestRunner.Load(testPackage);
TestSuite suite = builder.Build(testPackage);
TestSuite test = suite.Tests[0] as TestSuite;
var numberOfTests = ((TestFixture)test.Tests[0]).TestCount;
int i = 0;
foreach (TestMethod t in ((TestFixture)test.Tests[0]).Tests)
{
Console.WriteLine(t.TestName.Name);
//TestName testName = ((TestMethod)((TestFixture)test.Tests[0]).Tests[i]).TestName;
TestFilter filter = new NameFilter(t.TestName);
TestResult result = test.Run(new NullListener(), filter);
ResultSummarizer summ = new ResultSummarizer(result);
NUnit.Core.NUnitFramework.Assert.AreEqual(1, summ.ResultCount);
i++;
}
Kann ich jede aktualisierte Version dieser erhalten dann dies wird eine feine Lösung.
Ansatz 2: Mit Nunit3-Konsole
Added der Verweis auf mein Projekt nunit3.console.exe und versuchte, mit folgenden Code
string path = @"path to dll";
NUnit.ConsoleRunner.Program.Main(new[] { path });
dies ein Fehler wirft sagen: „Entweder Assembly enthält keine Tests oder richtiger Test-Treiber wurde nicht gefunden "
Kann mir jemand sagen, wie können wir die Tests mit Ausführungsprotokoll ausführen?
Danke für Ihre Erklärung Charlie, ich habe so viele Beiträge gelesen, um nunit Tests programmatisch auszuführen, und ich könnte einen älteren Weg nehmen, sie auszuführen. Ich werde die Dokumente weiterleiten, wie Sie in der Antwort erwähnt haben. – user3625533
Ich denke, Sie beziehen sich auf [diese] (https://github.com/nunit/docs/wiki/Test-Engine-API-Spec) ApI. Ist es eine stabile Version? Ich kann sehen, dass es einen Kommentar auf der Oberseite gibt, der sagt "Änderungen vorbehalten". – user3625533
Die API hat jetzt vier Versionen durchlaufen: 3.0, 3.0.1, 3.2 und 3.2.1. Wir haben hinzugefügt, aber nichts entfernt. – Charlie