简体   繁体   中英

Is it possible to get code coverage data for integration tests using Visual Studio?

I am testing a ASP.NET application and would like to get code coverage information about how much of the product code my integration tests exercise. Our libraries are already instrumented and the symbols (pdb) files are available, but I need to know exactly how to enable Visual Studio to capture the code executing within IIS and return the .coverage file. My integration tests are a mix of web api tests and Selenium browser tests.

Can this be done?

Yes, you can do this using the Dynamic Code Coverage tools that ship with Visual Studio 2013. I'm using Premium, so I can't say for sure which versions may or may not have this component.

The command to start coverage and hook it into IIS is as follows:

<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe collect /IIS /session:WebSession /output:<CoverageOutputFileName>.coverage

This will restart IIS and start up the coverage process.

Run your integration tests (or do manual testing if you want). When finished, stop the coverage tool with the following command:

<VisualStudioInstallDirectory>\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe shutdown /session:WebSession 

This will complete creating the coverage file which can then be opened in Visual Studio. Note, that the shutdown command leaves the CodeCoverage.exe running. Restarting IIS will shut down CodeCoverage.exe processes.

A few other notes:

  • If the specified output coverage file already exists, the code coverage monitor will not start. Make sure to use unique filenames or delete any existing files before starting.
  • If you embed these commands as External Tools in Visual Studio, you need to launch Visual Studio as Administrator to get it to start correctly.
  • If you want to convert your coverage file to xml so that it can be consumed by other tools (such as ReportGenerator ), you can use the following command to convert the coverage file:

    \\Team Tools\\Dynamic Code Coverage Tools\\CodeCoverage.exe analyze InputCoverageFile.coverage /output:OutputFile.coveragexml

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM