J'utilise googletest
en conjonction avec gcovr
ce qui produit un comportement étrange. J'ai un fichier d'en-tête foo.h
que gcovr
revendications a certaines lignes qui ne sont pas couvertes par un test. Ces lignes sont la définition de la classe et le constructeur de mouvement:googletest move couverture du constructeur
File Lines Exec Cover Missing
foo.h 42 40 95% 39,47
où la ligne 39 est:
class foo
et la ligne 47 est:
foo(foo&&) = default;
J'ai essayé d'appeler explicitement cette fonction un corps de test avec std::move()
, en vain. Y a-t-il une solution à ce problème, ou suis-je coincé avec un rapport de couverture de 99%?
Je devrais noter, il n'y a aucune implémentation dans cet en-tête en dehors de la définition de classe et de la sémantique de copie/déplacement (qui sont tous définis comme default
); tous les corps de fonctions sont dans foo.cpp
.
Avez-vous essayé un tel code de test: 'Foo foo1; Foo foo2 (std :: move (foo1)); '? – PiotrNycz
@PiotrNycz Oui, j'ai essayé de l'appeler explicitement dans un cas de test –