批量运行VS代码覆盖工具

pro*_*eek 6 code-coverage visual-studio-2010

我想出了一个批处理文件是写在这个生成的代码覆盖率文件.

cl /Zi hello.cpp -link /Profile
vsinstr -coverage hello.exe
start vsperfmon /coverage /output:run.coverage
hello
vsperfcmd /shutdown
Run Code Online (Sandbox Code Playgroud)

但是,当我运行批处理文件时,我收到此错误消息.

在此输入图像描述

我必须vsperfcmd /shutdown手动运行才能完成它.可能有什么问题?

Chr*_*ich 5

这只是一个时间问题.

start vsperfmon /coverage /output:run.coverage命令在单独的进程中启动vsperfmon.exe.

同时,您的脚本继续运行hello.如果hello是一个非常简单的程序,它可能会在vsperfmon.exe运行并完全初始化之前执行并完成.如果您的脚本vsperfcmd /shutdown在监视器启动并运行之前命中,您将收到正在显示的错误.

vsperfcmd它只是一个控制器/启动器vsperfmon,因此您可以在批处理文件中专门使用它:

cl /Zi hello.cpp -link /Profile
vsinstr -coverage hello.exe
vsperfcmd /start:coverage /output:run.coverage
hello
vsperfcmd /shutdown
Run Code Online (Sandbox Code Playgroud)

在这种情况下,第一次调用vsperfcmd将阻塞,直到监视器启动并完全运行.