コンソール プログラムを使用して、C# で記述された Nunit テスト ケースを実行しようとしています。これまでのところ、私はそれを行うためにさまざまな方法を試しましたが、同じことを達成するための完璧なアプローチ方法を見つけることができませんでした.
アプローチ 1: NUnitTestAdapter パッケージを使用します。このパッケージは古いため、最新の nunit バージョン 3.2.1 を使用して作成されたテストを実行できません。しかし、2.6.4 のような古いバージョンでは問題なく動作します。
NUnitTestAdapter パッケージをソリューションに追加してから、以下のコードを試しました
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++;
}
これの更新されたバージョンを入手できますか?これは素晴らしい解決策です。
アプローチ 2: Nunit3-console を使用する
nunit3.console.exe への参照をプロジェクトに追加し、以下のコードで試しました
string path = @"path to dll";
NUnit.ConsoleRunner.Program.Main(new[] { path });
これにより、「アセンブリにテストが含まれていないか、適切なテスト ドライバーが見つかりませんでした」というエラーがスローされます。
実行ログを使用してテストを実行する方法を教えてください。