J'utilise VS2005 VC++ pour C++ non géré. Je VSTS et essaie d'utiliser l'outil de couverture de code pour accomplir deux choses en ce qui concerne les tests unitaires:Je veux dire au compilateur VC++ de compiler tout le code. Peut-il être fait?
- Voyez combien de mon code référencé sous test est CHAISE
- Voyez combien de méthodes de mon code l'essai (le cas échéant) ne sont pas du tout appareil testé
Configuration de l'outil de couverture de code VSTS (voir le link text) et l'accomplissement de la tâche # 1 était simple. Cependant # 2 a été un défi surprenant pour moi. Voici mon code de test.
class CodeCoverageTarget
{
public:
std::string ThisMethodRuns() {
return "Running";
}
std::string ThisMethodDoesNotRun() {
return "Not Running";
}
};
#include <iostream>
#include "CodeCoverageTarget.h"
using namespace std;
int main()
{
CodeCoverageTarget cct;
cout<<cct.ThisMethodRuns()<<endl;
}
Lorsque les deux méthodes sont définies dans la classe comme au-dessus du compilateur élimine automatiquement le ThisMethodDoesNotRun() du fichier obj. Si je déplace sa définition en dehors de la classe, elle est incluse dans le fichier obj et l'outil de couverture de code montre qu'il n'a pas été exercé du tout. Dans la plupart des cas, je veux que le compilateur fasse cette élimination pour moi, mais pour l'outil de couverture de code, il détruit une partie significative de la valeur (par exemple, trouver des méthodes non testées). J'ai essayé un certain nombre de choses pour dire au compilateur d'arrêter d'être intelligent pour moi et de tout compiler, mais je suis perplexe. Ce serait bien si l'outil de couverture de code compensait cela (je suppose en balayant la source et en l'associant à la sortie de l'éditeur de liens) mais je n'ai rien trouvé pour suggérer qu'il a un mode spécial à activer. Ai-je complètement manqué quelque chose de simple ici ou n'est-ce pas possible avec le compilateur VC++ + l'outil de couverture de code VSTS?
Merci à l'avance, KGB
J'ai posé une question connexe mais plus générique ici: http://stackoverflow.com/questions/307478/automated-dead-code-detection-in-native-c-application-on-windows –