2010-01-16 13 views
2

J'ai un ensemble de TestFixtures en cours d'exécution. J'ai ajouté un nouveau test dans l'appareil, mais pour une raison quelconque, je ne suis pas capable de l'exécuter. D'autres tests dans d'autres classes et même dans la même classe fonctionnent bien.Pourquoi tester les plantages en utilisant NUnit/TestDriven.Net2.0?

  • deux GUI NUnit/TestDriven accident

Si je lance de GUI NUnit je reçois cette erreur:

NUnit a cessé de travailler avec ce 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: 6.0.6001.2.1.0.768.3 
    Locale ID: 2057 

utilisant TestDriven.Net 2.0 à l'intérieur VS2008, obtenez cette erreur:

TestDriven.Net 2.0 a cessé de fonctionner

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 

Répondre

6

Eh bien, il semble assez clair que vous causez un débordement de pile. StackOverflowException est une exception fatale qui fera tomber le CLR - c'est pourquoi vous voyez ce problème.

Je vous suggère de déboguer dans le test pour déterminer la cause du débordement de la pile. C'est typiquement un problème de récurrence. Par exemple, si vous avez une faute de frappe dans une propriété:

private readonly int age; 

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

Cela provoque un débordement de pile - mais peut donc écrit inconsidérément méthodes récursives.

+0

Merci mon ami, appréciez. –

+0

Merci, c'était * exactement * mon problème! :) – gehho