2016-04-29 12 views
7

Ho la seguente configurazione:opere vstest.console.exe, ma non con un buon nome di file, CodeCoverage.exe non dà alcun risultato

set __vsTestConsoleExe=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe 
set __codeCoverageExe=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe 

set __testFile=My.UnitTests.dll 

REM Below I get a ".coverage" file with the correct coverage. But the file name is kinda-random 
"%__vsTestConsoleExe%" "%__testFile%" /InIsolation /EnableCodeCoverage 

PAUSE 

REM Below I get a big ole nothing 
"%__codeCoverageExe%" collect /output:DynamicCodeCoverage.coverage "%__vsTestConsoleExe%" "%__testFile%" /InIsolation /EnableCodeCoverage 
"%__codeCoverageExe%" analyze /output:DynamicCodeCoverage.coveragexml DynamicCodeCoverage.coverage 

quando la linea di seguito viene eseguito:

"%__vsTestConsoleExe%" "%__testFile%" /InIsolation /EnableCodeCoverage 

ottengo un buon file .coverage, ma è un nome di file generato come:

MyUSERNAME_MYMACHINE 2016-03-24 16_03_20.coverage 

le linee dopo l'istruzione PAUSE (nel primo blocco di codice) sembra che dovrebbero raccogliere la copertura (e nota, sto dando lo stesso '"% __ vsTestConsoleExe%"' comamand ....... ma non ottengo un grande nulla da esso.

Cosa sto sbagliando?

risposta

0

Non sono mai riuscito a far funzionare vstest.console.exe.

Sono stato in grado di ottenere un nome di file "prevedibile" E ottenere informazioni nel file .coverage utilizzando MsTest.exe.

set __msTestExe=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe 
set __codeCoverageExe=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe 



REM the below calls will create the binary *.coverage files 
"%__codeCoverageExe%" collect /output:"D:\BuildStuff\TestResults\AAA_DynamicCodeCoverage.coverage" "%__msTestExe%" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.One.dll" /resultsfile:"D:\BuildStuff\TestResults\My.UnitTests.One.trx" 
"%__codeCoverageExe%" collect /output:"D:\BuildStuff\TestResults\BBB_DynamicCodeCoverage.coverage" "%__msTestExe%" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.Two.dll" /resultsfile:"D:\BuildStuff\TestResults\My.UnitTests.Two.trx" 
"%__codeCoverageExe%" collect /output:"D:\BuildStuff\TestResults\CCC_DynamicCodeCoverage.coverage" "%__msTestExe%" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.Three.dll" /resultsfile:"D:\BuildStuff\TestResults\My.UnitTests.Three.trx" 

È inoltre possibile combinare i 3 UnitTests.dlls in una singola chiamata

REM the below calls will create the binary *.coverage file 
"%__codeCoverageExe%" collect /output:"D:\BuildStuff\TestResults\ZZZ_DynamicCodeCoverage.coverage" "%__msTestExe%" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.One.dll" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.Two.dll" /testcontainer:"D:\BuildStuff\BuildResults\My.UnitTests.Three.dll" /resultsfile:"D:\BuildStuff\TestResults\My.UnitTests.AllOfThem.trx" 

ZZZ_DynamicCodeCoverage.coverage è "prevedibile" di nome, e ha valori effettivi nel file .coverage.

Non ho idea del perché il file .coverage creato da CodeCoverage.exe .. con il file vstest.console.exe nella sua lista di argomenti .... non funzioni. :( Anche in questo caso, non funziona uguale. 'Crea il file .coverage, ma aprendolo, non ha informazioni in esso. "

Problemi correlati