Ich benutze googletest
in Verbindung mit gcovr
, die etwas seltsames Verhalten produziert. Ich habe eine Header-Datei foo.h
, die gcovr
Ansprüche hat einige Zeilen, die nicht unter einem Test abgedeckt sind. Diese Linien sind die Klassendefinition und der Umzug Konstruktor:googeltest move constructor coverage
File Lines Exec Cover Missing
foo.h 42 40 95% 39,47
Wo Linie 39:
class foo
und Linie 47 ist:
foo(foo&&) = default;
Ich habe ausdrücklich versucht Aufruf dieser Funktion in ein Testkörper mit std::move()
, vergeblich. Gibt es eine Lösung für dieses Problem, oder stehe ich mit einem 99% Abdeckungsbericht fest?
Ich sollte beachten, es gibt keine Implementierung in diesem Header abgesehen von der Klassendefinition und der Kopie/Umzug Semantik (die alle als default
definiert sind); Alle Funktionskörper sind in foo.cpp
.
Haben Sie einen solchen Testcode ausprobiert: 'Foo foo1; Foo foo2 (std :: move (foo1)); '? – PiotrNycz
@PiotrNycz Ja, ich habe versucht, das explizit in einem Testfall aufzurufen –