我在Jenkins版本中使用NUnit
运行测试时遇到麻烦。当我手动进行测试(通过Cake
构建脚本)(即使直接在构建服务器上)成功完成所有测试时,在Jenkins中调用相同构建脚本的构建过程中运行这些测试时,测试就会失败。
作为输出,我得到以下消息:
执行任务“测试”时发生错误。 错误: NUnit3:无法识别的错误(退出代码-1073740940)。
在NUnit
上运行TraceLevel = TraceLevel.Debug
时,我得到一个跟踪文件,看起来不错,直到它在同一行之后才停止:
15:49:14.342 Debug [ 6] Dispatcher: Using Direct strategy for <my failing test>
我正在与NUnit
和一个工作人员一起运行InProcess
。
总是相同的测试失败-但仅当在CI版本中运行时。 我知道几乎不可能从这里诊断出确切的问题-我要问的是,是否有任何方法可以获取有关确切失败原因的更多信息?
答案 0 :(得分:1)
基于错误代码,这似乎是堆损坏错误(C0000374)。有关更多信息,请参见https://blogs.msdn.microsoft.com/calvin_hsia/2015/01/30/heap-corruption-exception-0xc0000374/,以获取有关如何产生此类错误的一些示例。
我的猜测是,您的测试在某些情况下做得不好并且可以避免使用它,但是在Jenkins下运行可能会改变环境,从而引发异常。
这很难诊断。我想确定的第一件事是您的任何测试代码是否都已执行。 NUnit内部跟踪似乎表明已调度(排队)了测试,但实际上并未将其出队并运行。但是,当跑步者撞车时,我们有时会丢失一些事件。
您可以尝试使用--workers = 0运行,以查看简化的执行代码(不使用队列)是否可以为您提供更多信息。