我尝试使用OpenCover在IIS Express上运行Asp.Net Core应用程序(DebugType - Full)获取代码覆盖率。
按照指定here我尝试设置环境变量,然后运行OpenConsole。唯一的区别是我尝试使用iisexpress.exe而不是VSIISExeLauncher.exe打开
set LAUNCHER_ARGS=-p "C:\Program Files\dotnet\dotnet.exe" -a "exec \"C:\CoreWebApp\CoreWebApp\bin\Debug\netcoreapp2.0\CoreWebApp.dll\"" -pidFile $([System.IO.Path]::GetTempFileName()) -wd "C:\CoreWebApp\CoreWebApp"
set LAUNCHER_PATH=C:\Program Files\IIS Express\iisexpress.exe
OpenCover.Console.exe -target:"C:\Program Files\IIS Express\iisexpress.exe" -targetargs:"/config:""C:\CoreWebApp\.vs\config\applicationhost.config"" /site:CoreWebApp" -output:"Coverage.results.xml" -register:user –targetdir:"C:\CoreWebApp\CoreWebApp\bin\Debug\netcoreapp2.0"
我得到了HTTP错误502.5 - 进程失败'当我点击应用程序中的任何URL时。
或者,如果我尝试直接运行应用程序,如下所示。当我按 CTRL + C 来停止服务器时,OpenCover也会停止。
OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:"C:\CoreWebApp\CoreWebApp\bin\Debug\netcoreapp2.0\CoreWebApp.dll" -output:"Coverage.results.xml" -register:user -oldStyle
知道如何将OpenCover与Asp.Net Core应用程序一起使用吗?
答案 0 :(得分:1)
以下工作。
设置环境变量。
set LAUNCHER_ARGS=-p "C:\Program Files\dotnet\dotnet.exe" -a "exec ""C:\Users\baga\source\repos\CoreWebApp\CoreWebApp\bin\Debug\netcoreapp2.0\CoreWebApp.dll"""
set LAUNCHER_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\Web Tools\ProjectSystem\VSIISExeLauncher.exe
如果您想在IIS express中运行dot net core应用程序,可以使用以下命令。
"C:\Program Files\IIS Express\iisexpress.exe" /config:"C:\Users\baga\source\repos\CoreWebApp\.vs\config\applicationhost.config" /site:"CoreWebApp"
使用OpenCover获取代码覆盖率,
OpenCover.Console.exe -target:"C:\Program Files\IIS Express\iisexpress.exe" -targetargs:"/config:""C:\Users\baga\source\repos\CoreWebApp\.vs\config\applicationhost.config"" /site:CoreWebApp" -output:"c:\baga\Coverage.results.xml" -register:user –targetdir:"C:\Users\baga\source\repos\CoreWebApp\CoreWebApp\bin\Debug\netcoreapp2.0" -oldStyle
生成html报告
ReportGenerator.exe -reports:"c:\baga\Coverage.*.xml" -targetdir:"Coveragehtml"