我正在Jenkins使用CI工作流。
每次编译结束时都会生成一个bat文件,如下所示:
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_add_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_add_test_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_cluster_around_center_tests_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --export_type=binary:coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_multiple_cluster_centers_test_TESTTARGET.exe
OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\tests --excluded_sources D:\Jenkins\workspace\bfsearch\bin --input_coverage=coverage_results_bfs_add_test_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov --export_type=cobertura:coverage_results.xml -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_radius_test_TESTTARGET.exe
由于opencppcoverage中的明确错误,我的测试运行总是失败:
错误:HandleInformation.cpp:85找不到句柄的路径。该句柄无效。
D:\Jenkins\workspace\bfsearch>./runtests.bat
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_add_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_add_test_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_cluster_around_center_tests_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --export_type=binary:coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_multiple_cluster_centers_test_TESTTARGET.exe
Error: HandleInformation.cpp:85 Cannot find path for the handle.The handle is invalid.
D:\Jenkins\workspace\bfsearch>OpenCppCoverage -q --continue_after_cpp_exception --sources D:\Jenkins\workspace\bfsearch --modules D:\Jenkins\workspace\bfsearch --excluded_sources D:\Jenkins\workspace\bfsearch\\tests --excluded_sources D:\Jenkins\workspace\bfsearch\\bin --input_coverage=coverage_results_bfs_add_test_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov --input_coverage=coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov --export_type=cobertura:coverage_results.xml -- D:\Jenkins\workspace\bfsearch\bin\tests\Debug\bfs_radius_test_TESTTARGET.exe
Argument of input_coverage <coverage_results_bfs_add_test_TESTTARGET.exe.cov> does not exist.
OpenCppCoverage Version: 0.9.5.2
Usage: [options] -- program_to_run optional_arguments:
Command line only:
-v [ --verbose ] Verbose mode.
-q [ --quiet ] Quiet mode.
-h [ --help ] Show help message.
--config_file arg Filename of a configuration file.
Command line and configuration file:
--modules arg (=*) The pattern that module's paths should
match. Can have multiple occurrences.
--excluded_modules arg The pattern that module's paths should NOT
match. Can have multiple occurrences.
--sources arg (=*) The pattern that source's paths should
match. Can have multiple occurrences.
--excluded_sources arg The pattern that source's paths should NOT
match. Can have multiple occurrences.
--input_coverage arg A output path of export_type=binary. This
coverage data will be merged with the
current one. Can have multiple occurrences.
--export_type arg (=html) Format: <exportType>:<outputPath>.
<exportType> can be: binary, cobertura, html
<outputPath> (optional) output file or
directory for the export.
Example: html:MyFolder\MySubFolder
This flag can have multiple occurrences.
--working_dir arg The program working directory.
--cover_children Enable code coverage for children processes.
--no_aggregate_by_file Do not aggregate coverage for same file
path.
--unified_diff arg Format: <unifiedDiffPath>?<rootFolder>
<unifiedDiffPath> path of the unified diff
file. Git users can use git diff output.
<rootFolder> (optional) root folder for
paths in the diff file.
See documentation for limitations.
--continue_after_cpp_exception Try to continue after throwing a C++
exception.
Build step 'Execute Windows batch command' marked build as failure
Skipping Cobertura coverage report as build was not UNSTABLE or better ...
Can you help me with this? The same script was working a month ago, now it doesn't. Is there something related to windows updates ? I've also looked at the source code, there's no such code at HandleInformation.cpp:85 that can cause an error like that. Is source code updated in the repository?
我已经安装了最新版本,问题仍然存在。
这是我为测试该问题而创建的一个快速项目。
https://github.com/onatbas/OpenCppCoverageTestFail
我已经包含了详细的输出。
我正在运行Windws 7 x64。
我没有任何防病毒软件。
谢谢
最佳答案
基于https://github.com/OpenCppCoverage/OpenCppCoverage/issues/84,应在OpenCppCoverage 0.9.8.0中修复。