21 Stimmen

Wie man NUnit-Tests aus C#-Code ausführt

Ich versuche, eine einfache Methode zu schreiben, die eine Datei empfängt und führt es mit NUnit. Der Code, den ich mit NUnit-Quellcode erstellen konnte, funktioniert nicht:

if(openFileDialog1.ShowDialog() != DialogResult.OK)
{
    return;
}

var builder = new TestSuiteBuilder();
var testPackage = new TestPackage(openFileDialog1.FileName);
var directoryName = Path.GetDirectoryName(openFileDialog1.FileName);
testPackage.BasePath = directoryName;
var suite = builder.Build(testPackage);

TestResult result = suite.Run(new NullListener(), TestFilter.Empty);

Das Problem ist, dass ich immer eine Ausnahme von builder.Build, die besagt, dass die Baugruppe nicht gefunden wurde ausgelöst wird.

Was übersehe ich? Gibt es eine andere Möglichkeit, den Test über den Code auszuführen (ohne Process.Start zu verwenden)?

30voto

Martin Buberl Punkte 43442

Wenn Sie die folgende Zeile am Anfang einfügen, wird das NUnit-Framework eingerichtet und könnte Ihnen helfen:

CoreExtensions.Host.InitializeService();

Eine andere "einfachere" Möglichkeit, NUnit-Tests programmatisch auszuführen, wäre:

TestPackage testPackage = new TestPackage(@"C:\YourProject.Tests.dll");
RemoteTestRunner remoteTestRunner = new RemoteTestRunner();
remoteTestRunner.Load(testPackage);
TestResult testResult = remoteTestRunner.Run(new NullListener());

Sie müssen auf die folgenden Baugruppen verweisen:

  • nunit.core.dll
  • nunit.core.interfaces.dll

Und natürlich die nunit.framework.dll muss sich in dem Ordner mit Ihrer Testanordnung befinden ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X