2010-11-17 22 views
1

En cas de violation d'accès au test unitaire avec la bibliothèque de test boost.Je ne veux pas arrêter le test en cas de violation d'accès lors du test avec la bibliothèque boost

puis, le test a été interrompu et terminé. Mais, je ne veux pas arrêter le test de l'unité. Juste je veux obtenir une exception ou une notification.

Comment le faire?

Merci, et s'il vous plaît understad mon fou anglais (8 (|!).

EDIT

erreur de violation d'accès n'est pas dans le programme de test, il est dans le programme cible (tester)

.

par exemple.

programme cible

int target_function() 
{ 
    char *source; 

    strcpy(source, "access violation"); 

    return 0; 
} 

t programme est

BOOST_AUTO_TEST_CASE(access_violation) 
{ 
    target_function(); 
    BOOST_CHECK(false); 
} 

ÉDITER !!! J'utilise aussi Visual Studio 2005 dans le système Windows et g ++ dans le système Linux.

ÉDITER !!! J'ai compris votre opinion. Mais, je ne suis pas programmeur de programme cible. Donc, je ne peux pas les réparer. Je veux juste continuer mon programme de test. Je fais beaucoup de test. Alors. chaque fois que mon programme de test rencontre l'erreur any, passez cette erreur et continuez.

+0

Quel compilateur utilisez-vous? Sur quel système d'exploitation travaillez-vous? –

Répondre

2

Lorsque vous avez une violation d'accès, l'intégrité du processus dans son ensemble est compromise. Il n'y a aucun moyen sain de se remettre de cette condition; et donc pas de manière saine de continuer les tests. Lorsque le processus se corrompt lui-même, le processus est en baisse, que le cadre de test unitaire le veuille ou non.

+0

Est-il impossible d'attraper la violation d'accès comme «essayer», «attraper»? – cardbt

+0

@cardbt Selon votre système d'exploitation et autres, il peut y avoir des moyens de l'attraper. Mais ne serait-il pas préférable de corriger la source de la violation d'accès au lieu d'essayer de la contourner? – TheUndeadFish

1

Je crois que les méthodes utilisées pour tenter d'intercepter les violations d'accès sont définies par l'implémentation. Cependant, c'est une mauvaise idée de quelque façon que ce soit. Si votre programme plante et se bloque, vous pouvez tout aussi bien abandonner le processus de test et corriger le problème avant de continuer.