我正在使用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。 我没有任何防病毒软件。
由于
答案 0 :(得分:1)
基于https://github.com/OpenCppCoverage/OpenCppCoverage/issues/84,应在OpenCppCoverage 0.9.8.0中对其进行修复。
答案 1 :(得分:0)
对我来说,我能够通过使用以管理员身份运行的命令提示符解决此问题。
答案 2 :(得分:0)
选项一: 您必须为“--input_coverage”指定.cov文件参数的完整路径。所以你的最后一行应该是这样的:
BOOL
选项二: 在.bat文件的顶部有cd到bin文件。
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_add_test_TESTTARGET.exe.cov
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_cluster_around_center_tests_TESTTARGET.exe.cov
--input_coverage=D:\Jenkins\workspace\bfsearch\bin\coverage_results_bfs_multiple_cluster_centers_test_TESTTARGET.exe.cov