开发者

Why Test crashes using NUnit / TestDriven.Net2.0?

开发者 https://www.devze.com 2022-12-17 17:18 出处:网络
I have a Set of TestFixtures running fine. I added a new Test into the fixture, but for some reason, I am not able to run it. Other tests in other classes and even in the same class run fine.

I have a Set of TestFixtures running fine. I added a new Test into the fixture, but for some reason, I am not able to run it. Other tests in other classes and even in the same class run fine.

  • Both NUnit GUI / TestDriven crash

If I run from NUnit GUI I get this error:

NUnit has stopped Working with this message

Description:
  Stopped working

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: nunit.exe
  Problem Signature 02: 2.5.3.9345
  Problem Signature 03: 4b2334ce
  Problem Signature 04: Engine
  Problem Signature 05: 1.0.0.0
  Problem Signature 06: 4b51c6fe
  Problem Signature 07: ad
  Problem Signature 08: 0
  Problem Signature 09: System.StackOverflowException
  OS Version开发者_如何学Go:   6.0.6001.2.1.0.768.3
  Locale ID:    2057

using TestDriven.Net 2.0 inside VS2008, get this error:

TestDriven.Net 2.0 has stopped working

Description:
  Stopped working

    Problem signature:
      Problem Event Name:   CLR20r3
      Problem Signature 01: processinvocation86.exe
      Problem Signature 02: 3.0.2556.0
      Problem Signature 03: 4af0254b
      Problem Signature 04: Engine
      Problem Signature 05: 1.0.0.0
      Problem Signature 06: 4b51c6fe
      Problem Signature 07: ad
      Problem Signature 08: 0
      Problem Signature 09: System.StackOverflowException
      OS Version:   6.0.6001.2.1.0.768.3
      Locale ID:    2057


Well, it seems fairly clear that you're causing a stack overflow. StackOverflowException is a fatal exception which will bring down the CLR - which is why you're seeing that problem.

I suggest you debug into the test to work out the cause of the stack overflow. It's typically a recursion issue. For example, if you have a typo in a property:

 private readonly int age;

 public int Age
 {
     get { return Age; } // should be "return age;"
 }

That will cause a stack overflow - but so can incautiously written recursive methods.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号