在 UnitTest 中捕获 HeapException

问题描述

所以我有一个非常棘手的问题(至少对我而言)。

我们有一个在竹子上运行单元测试的应用程序,对于一些测试,NUnit 崩溃并显示错误代码

nunit3-console.exe returned error code -1073740940. Rerun False

这导致我遇到 HeapException。

我现在的问题是。

  1. 我无法在本地重现此内容(我在开发环境中执行的所有测试都成功运行)。我们用于 CI 的环境是 Bamboo。
  2. 我试图在测试中定位问题,但我失败了。我删除了抛出此异常的测试类,现在异常发生在另一个测试类中。 2.1 我还删除了第二个测试类,错误现在出现在第三个测试类中,这让我得出结论,实际的 HeapException 是在所有这些测试运行之前的某个地方,而我的测试是刚刚确认并抛出它的地方。立>

应用程序有大约 100.000 个测试,我很难去检查它们,甚至检查在我的 TestClass 之前调用了哪些测试,所以在这里我问你,有没有办法至少找到一种方法找到问题的根源。发生此错误的实际位置。

How to debug corruption in the managed heap

我尝试按照此处的步骤进行操作,但这些几乎都是基于您知道异常正在发生的事实,或者您可以在本地重现它。

E:

添加一个测试作为评论的示例,但我认为这对原因没有帮助

 [Test]
        public void test()
        {
            //GIVEN
            var stub= new Mock<Object1>().Object;
            var job= new Job();            
            var version= new Version(0,0);

            //WHEN + THEN
            Assert.That(() => stub.Start(job,version),Throws.InstanceOf<Excetion>().And.Message.Contains("message"),"error message");
        }

对于因缺少调试信息而将其标记关闭的人,只要我知道测试代码的哪一部分失败或者我是否可以在本地重现它,我很乐意为您提供调试代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)