2

ソースファイルがルートディレクトリからの相対位置にあるときに、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

私が間違っていることは何か分かりますか?

4

1 に答える 1