c# - 如何在 C# 代码中运行 NUnit 测试
问题描述
我有一个 .NET Core NUnit 测试项目,其中包含一些TestFixtures
和许多Tests
. 我可以在 Visual Studio 中运行这个项目,并在一个特殊的 Visual Studio 测试结果窗口中看到测试结果。
现在,问题是,我想创建一个控制台应用程序,它将每 5 分钟运行一次这些测试并存储每个测试的结果(它成功了吗?它执行了多少时间?如果有异常,它们是什么?说?等...)。所以,在伪代码中,我想做类似的事情:
var testsResults = RunTests("my NUnit test project from NuGet");
StoreResultsInDataBase(testResults);
我将如何实现该RunTests
方法?我在 SO 上找到了这篇文章:如何从我的代码中运行 NUnit
答案之一显示了这样的代码:
TestPackage package = new TestPackage(@"C:\YourProject.Tests.dll");
RemoteTestRunner remoteTestRunner = new RemoteTestRunner();
remoteTestRunner.Load(package);
TestResult result = remoteTestRunner.Run(new NullListener());
它似乎完全符合我的需要。我尝试使用它,但是,我在TestPackage
课堂上遇到了问题。我只在NUnitTestAdapter.WithFramework
包中找到它,这是一个来自 NuGet 的 .NET Framework 项目(我需要使用 .NET Core)。
是否有适用于 .NET Core 的解决方案?我能想到的唯一解决方案是使用反射来查找所有具有[Test]
属性的方法并运行它们。但是,这会有点问题,因为我的测试也使用[Order]
并且需要以正确的顺序运行。
解决方案
推荐阅读
- python-3.x - 如何从 python 中的字典创建 NXN 矩阵?
- angular - Angular 10 严格模式:AbstractControl 与 FormControl
- javascript - 任何人都可以帮助验证节点中的 Sendgrid 签名 webhook,因为文档中的唯一示例是 Golang?
- java - 我应该如何在没有警告的情况下运行 2 个对象的代码
- django - django join 三张表
- css - VS Code 向 CSS 文件添加缩进
- python - 选择具有某个值的最高计数的列
- excel - Excel VBA - 为引用单元格分配地址
- python - 编辑数组列表并替换值
- python - 有什么方法可以让 tkinter 中的输入框等待输入吗?(在 Python 3 中)