c# - 如何获取 Nunit 测试的执行时间,包括设置时间?
问题描述
我们正在对每个拉取请求运行我们的测试。目前,我们的测试大约需要 2h30 左右,这对我们来说有点太长了,特别是考虑到我们只有 2 台机器并行执行 10 人的测试。
所以我们考虑每周只运行一次更“昂贵”的测试,并且不要阻止拉取请求。不理想,但已经取得了进展。
问题是,显然我们有强烈的印象,即在 Visual Studio 和 azure devops 中是测试方法本身的时间,不包括OneTimeSetup
andSetup
方法(以及它们的 TearDown 对应物)。至少运行时间比它显示的要长(如果在最后 1 分钟内没有进行任何测试,我们会得到大约 10 秒的执行时间)。
如何让这些时间包括在内?在 Visual Studio 中还是通过命令行?
使用 Visual Studio + NUnit 测试适配器执行测试。
我
解决方案
NUnit 报告其 XML 结果输出所用的时间。
对于测试用例,报告的时间是SetUp + TestMethod + TearDown。顺便说一句,传统上,使用 xunit 模式的框架将上述方法称为“测试”,而单独的方法称为“裸测试”。
OneTimeSetUp 和 OneTimeTearDown 不与特定测试用例相关联,而是与包含这些用例的类相关联。如果你使用 NUnit SetUpFixtures,它们也有一个与之相关的执行时间。
您可以通过浏览 XML 文件或使用您喜欢的任何语言编写报告来从 XML 文件中找出所有这些细节。如果您的大部分耗时设置都位于 TestFixtures 中(直接或通过基类),我建议从每个夹具时间的列表开始。OTOH,如果您已将昂贵的操作重新定位到单独的 SetUpFixture 中,请从列出命名空间花费的总时间开始。
推荐阅读
- react-native - React Native Hooks 初始化程序没有采用正确的值
- blockchain - 如何更改松露(ganache)的帐户?
- json - Google Apps Script webapp 正在将提交的数据值转换为数组
- c - 如何将结构数组作为int函数的参数传递
- flutter - 在封闭测试中发布应用程序后捕捉打印数据?
- python-3.x - 使用 pynco 包压缩 netCDF 文件
- python - Tensorflow 数据集在调用 model.fit 时会降维
- python - 为什么 Spyder 不选择全局变量?
- c# - 实体框架 IdentityUser 覆盖 UserName 将不会保存在数据库中
- c++ - 无法在最新 Windows 版本的 Geany IDE 中正确键入 #include 语句