2011-02-09 6 views
4

私は以下のC++コードを持っています。コマンドラインでMSコードカバレッジツールを使用するには?

#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

何間違っているかもしれませんか? 私はthis postの指示に従った。あなたは、あなたのプログラムを実行する必要が

答えて

8

モニター開始後:手順3を実行すると、あなたには、いくつかの

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

が表示されますvsperfmon.exeのhello.exeが開始されたことを通知します。

複数のテストを実行する予定がある場合は、手順2〜4を実行するだけです。言い換えれば、バイナリを作成した後は、そのバイナリを1回インストルメントするだけです(ステップ1)。

+0

ザム。なぜこれを簡単に文書化できなかったのですか? https://msdn.microsoft.com/en-us/library/dd299398(v=vs.90).aspx – granadaCoder

+1

将来の読者のために........複数の.coverageファイルを作成する別の方法があります: http://stackoverflow.com/questions/415562/mstest-code-coverage/37005493#37005493 – granadaCoder

関連する問題