ソースファイルがルートディレクトリからの相対位置にあるときに、gcovr から適切な html 出力を取得しようとしています。
例 (gcovr が機能する場合と問題がある場合の 2 つのケースについて説明します):
ケース:1 - gcovr は問題なく動作 します。 --html --html-details を使用してルートから gcovr を実行すると、ルート ディレクトリは次のようになります。
source/myfile.c
obj/myfile.o, myfile.gcda, myfile.gcno, myfile.c.gcov
gcovr_reports/report.html, report_myfile.html
これですべて問題なく、html の一般レポート (report.html) と詳細レポート (report_myfile.html) ができました。
ケース:2 - gcovr が正常に動作しない --html --html-details を使用してルートから gcovr を実行すると、ルート ディレクトリは次のようになります)
../../../Common/Source/myfile.c
obj/Common/Source/myfile.o, myfile.gcda,myfile.gcno,^#^#^#Common#Source#gcovmyfile.gcov
gcovr_reports/report.html, report.C
ご覧のとおり、gcovr は gcovr_report/ ディレクトリ内に「report.C」ファイルを生成します。
また、概要を含む一般的な html レポート (report.html) が作成されますが、ソース ファイル "myfile.c" の詳細なレポートは作成されません。obj ディレクトリを調べると、次のファイルが作成されます (以下を参照)。
^#^#^#Project#Common#Source#myfile.c.gcov
調べてみると
^#^#^#Project#Common#Source#myfile.c.gcov,
パスは次のように解決されます。
Source:../../../Project/Common/Source/myfile.c
ただし、次のようにする必要があります。
Source:../../../../../../../Project/Common/Source/myfile.c
gcovr コマンドは次のとおりです。
C:\Python34\Scripts\gcovr -v -b -r C:\Project\UnitTests\myModule\module1 -- object-directory C:\Project\UTests\myModule\module1\test-obj\Common\Source -- html --html-details -o govr_report\report.html
私が間違っていることは何か分かりますか?