Как использовать инструмент покрытия кода MS в командной строке? - PullRequest
6 голосов
/ 10 февраля 2011

У меня есть следующий код C ++.

#include <iostream>
using namespace std;

int testfunction(int input)
{
    if (input > 0) {
        return 1;
    }
    else {
        return 0;
    }
}

int main()
{
    testfunction(-1);
    testfunction(1);
}

Я скомпилировал его, чтобы получить исполнение

cl /Zi hello.cpp -link /Profile

Затем я проверяю выполнение и генерирую двоичный файл .coverage.

vsinstr -coverage hello.exe
start vsperfmon -coverage -output:mytestrun.coverage
vsperfcmd -shutdown

Когда я открываю файл покрытия в VS2010, я ничего не получил в его результатах.

enter image description here

Что может быть не так? Я следовал инструкциям в этом посте .

1 Ответ

12 голосов
/ 10 февраля 2011

Вам нужно запустить вашу программу после запуска монитора:

  1. > vsinstr /coverage hello.exe
  2. > start vsperfmon /coverage /output:mytestrun.coverage
  3. > hello.exe
  4. > vsperfcmd /shutdown

При выполнении шага 3 в vsperfmon.exe должно появиться уведомление о том, что hello.exe запущен.

Если вы планируете выполнить несколько тестовых прогонов,нужно только выполнить шаги 2-4.Другими словами, вам нужно всего лишь один раз использовать свой двоичный файл (шаг 1) после его сборки.

...