我正在尝试使用控制台程序执行用 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++;
}
我可以得到这个的任何更新版本,那么这将是一个很好的解决方案。
方法二:使用 Nunit3-console
在我的项目中添加了对 nunit3.console.exe 的引用并尝试使用以下代码
string path = @"path to dll";
NUnit.ConsoleRunner.Program.Main(new[] { path });
这会引发错误,提示“程序集不包含测试或未找到正确的测试驱动程序”
谁能让我知道我们如何使用执行日志运行测试?