这是推测,因为我不使用 OpenCover,但覆盖分析工具应该可以检测它通过的所有行。由于您在进行图像处理,每个像素肯定会触发 OpenCover 对匹配的代码行进行一些分析,并且您有很多像素
假设 OpenCover 需要 0.01 毫秒来检测一行代码(这也是纯粹的推测),您正在处理 1280*1024 图像并且每个像素需要 3 行代码(上限红色通道,异或绿色和蓝色,等等) ,你得到 1310720 * 0.01 * 3 = 大约 39 秒。对于一个测试。
我怀疑你只有一个测试,所以将它乘以测试数量;你可能知道为什么它很慢。
您也许应该尝试在较小的范围内测试您的算法:除非您正在执行图像范围的操作(我没有看到哪些操作?)您的代码不需要整个图像来处理。或者使用较小的图像?
编辑:我在这里查看了测试套件(再次,不知道 OpenCover 本身)可以说问题来自您正在测试的所有数据;为相同的测试加载和处理每个图像,这不是您想要的单元测试方式。
测试将每种图像类型加载到库的 Image 类中,然后从 Image 类测试一次旋转、一次调整大小操作等。不要每次都测试所有内容!
由于测试是必要的,也许您可以探索OpenCover 选项以排除一些数据。也许通过仅检测算法的外壳来完善您的覆盖分析会有所帮助。看看过滤器,看看你可以隐藏什么以使其运行可接受。
或者,您可以只每天运行代码覆盖率,最好是在晚上?