Dotcover.exe report tries to connect to raw.github.com
Trying to setup dotcover on our buildserver, the "dotcover report" command just hangs on "Report generation started" statement.
I have added the dotcover logfile and in that logfile i can see the following exception below.
It seems like it tries to download something from github just after the report is created.
Can i disable this download?
15:35:27.144 |I| HtmlReportBuilder | BuildHtmlReport. FileName = D:\XXXXX\CoverageReport.html; WebProxySettings = Default
15:35:39.379 |W| | The remote name could not be resolved: 'raw.github.com'
--- EXCEPTION #1/2 [WebException]
Message = “The remote name could not be resolved: 'raw.github.com'”
ExceptionPath = Root.InnerException
ClassName = System.Net.WebException
HResult = COR_E_INVALIDOPERATION=80131509
Source = System
StackTraceString = “
at System.Net.HttpWebRequest.GetResponse()
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.FileDownloader.CoreDownload(Uri fileUri, FileSystemPath targetFile, IWebProxy proxySettings, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.FileDownloader.TryDownload(Uri fileUri, FileSystemPath targetFile, IWebProxy proxySettings, IProgressIndicator progress)
”
--- Outer ---
--- EXCEPTION #2/2 [LoggerException]
Message = “The remote name could not be resolved: 'raw.github.com'”
ExceptionPath = Root
ClassName = JetBrains.Util.LoggerException
InnerException = “Exception #1 at Root.InnerException”
HResult = COR_E_APPLICATION=80131600
StackTraceString = “
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.SourceFilesGetter.TryGetSourceFile(SectionIndex`1 metadataIndex, Int32 documentIndex, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.GetHtmlNodeDetails(Int32 nodeIndex, IList`1 enumeratedItems, ResourcesGenerator resourcesGenerator, SourceFilesGetter sourceFilesGetter, IMetadataSectionAssemblyProvider metadataSectionAssemblyProvider, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.<>c__DisplayClass6.<BuildReport>b__1(Int32 nodeIndex, IProgressIndicator pi)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.IndexFileWriter.WriteIndexFile(Int32 nodesNumber, Func`3 getNodeDetails, String reportFileName, String resourceFolderShortName, Boolean includeEnvironmentSpecificInfo, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.BuildReport(String fileName, Boolean includeEnvironmentSpecificInfo, CustomWebProxySettings webProxySettings, ProgressId progressId)
at JetBrains.dotCover.ConsoleRunner.Backend.Commands.Report.ReportCommand.Execute(CommandExecutionContext context)
at JetBrains.dotCover.ConsoleRunner.Backend.ConsoleRunnerBackend.Execute(ICommandLine commandLine, Func`1 componentContainerGetter)
at JetBrains.dotCover.ConsoleRunner.Startup.ConsoleRunnerProgram.Main(String[] args)
”
15:35:48.879 |W| | The remote name could not be resolved: 'raw.github.com'
Please sign in to leave a comment.
Hello Goran,
In order to create an HTML report, dotCover needs your source code files. It takes info about where the source code files can be found from PDB files loaded during the coverage analysis. Each PDB file contains local paths to the source files from which it was built. Also, PDB files can contain remote source servers addresses where source code files can be downloaded.
dotCover first tries to find the source code files locally. If it fails (e.g. if you try to create a coverage report not on the same machine where your project was built), it tries to find and download the source code files remotely.
In your case, it looks like PDB files contain "raw.github.com" as a remote source server address and you try to build an HTML report on a machine where there are no local source code files.
This behavior can't be changed now. In order to avoid access to the remote source server, you should build coverage reports on the same machine where you build the project.
In any case, access to a remote server shouldn't lead to hanging. Could you please send us more detailed log file? Please use the following command line keys:
/LogLevel=Verbose /LogFile=path_to_log_file
Ok, tried with the verbose log, and the process is not acutually hanging (but it seems so)
It looks like the report tries to download each source file of one dll from github, but since we dont have access to that from buildserver it fails.
What i am running:
D:\Tools\DotCover\dotCover.exe cover /TargetExecutable="D:\Tools\NUnit.org\nunit-console\nunit3-console.exe" /TargetArguments=".\VtDigitalCouponServiceBuild\VT.DigitalCouponService.Domain.UnitTests.dll" /Output="Snapshot1.dcvr" /TargetWorkingDir="d:\coveragetemp" /LogFile="d:\coveragetemp\coverage.log"
This works fine, next step is:
D:\Tools\DotCover\dotcover.exe report /Source=Snapshot1.dcvr /Output=CoverageReport.html /ReportType=html /LogFile="d:\coveragetemp\coverageReport3.log" /LogLevel=Verbose
This step tries to download each file of FakeItEasy. I tried to exclude the FakeItEasy dll from analyze (with parameter /Filters="-:FakeItEasy.*" but that didnt help.
What I would like is that the analyze is only done on any files that has pattern vt.* is that possible?
logfile looks like this:
15:08:39.044 |I| | JetBrains dotCover Console Runner 2016.3.2. Build 107.0.20170126.121718
15:08:39.060 |I| | LogLevel: VERBOSE
15:08:39.107 |V| JetDispatcher | Thread <NULL>:1 pwned.
15:08:39.107 |V| JetDispatcher | Thread <NULL>:1 created an Avalon marshaller.
15:08:39.169 |V| JetScheduler | Thread 'JetPool Manager' started
15:08:39.169 |V| JetDispatcher | Thread StaExecutor:4 pwned.
15:08:39.169 |V| JetDispatcher | Thread StaExecutor:4 created an Avalon marshaller.
15:08:39.294 |I| | 'report' command
15:08:39.294 |I| | /Source=Snapshot1.dcvr (CommandLine)
15:08:39.294 |I| | /Output=CoverageReport.html (CommandLine)
15:08:39.294 |I| | /ReportType=html (CommandLine)
15:08:39.294 |I| | /LogFile=d:\coveragetemp\coverageReport3.log (CommandLine)
15:08:39.294 |I| | /LogLevel=Verbose (CommandLine)
15:08:39.310 |I| | Current directory: D:\bamboo-agent-home\xml-data\build-dir\TES-GTA-JOB1
15:08:39.310 |I| | Validating command...
15:08:39.310 |I| | Executing command...
15:08:39.310 |I| | Parameter Snapshot1.dcvr converted to D:\bamboo-agent-home\xml-data\build-dir\TES-GTA-JOB1\Snapshot1.dcvr
15:08:39.310 |I| | Parameter CoverageReport.html converted to D:\bamboo-agent-home\xml-data\build-dir\TES-GTA-JOB1\CoverageReport.html
15:08:39.310 |I| | Report generation started [2017-02-28 15:08:39]
15:08:39.325 |V| WorkspaceSnapshotManager | SnapshotChangedSignalId = WorkspaceSnapshotChanged (62165fe5-6078-46bc-983b-8dc68b283158)
15:08:39.325 |V| WorkspaceSnapshotManager | TemporarySnapshotChangedSignalId = WorkspaceTemporarySnapshotChanged (426aab34-7e69-40b8-8afb-f764419481c2)
15:08:39.325 |V| WorkspaceSnapshotManager | PersistentSnapshotChangedSignalId = WorkspacePersistentSnapshotChanged (bb750af1-cf3f-4240-b5ee-02436f12fdf1)
15:08:39.325 |V| UnitTestSessionOperationManager| OperationCompletedSignalId = OperationCompleted (e5a30f95-cd8d-4b37-bf42-611f4691e8de)
15:08:39.325 |V| UnitTestSessionOperationManager| LatestOperationResultDroppedSignalId = LatestOperationResultDropped (936e829d-d0cb-4077-aaae-594befde9763)
.....
..... lots of logs here
.....
15:08:40.388 |V| | [HtmlReport] Source file 89 (Z:\TeamCityAgent\work\b8aff86b339c02d7\src\FakeItEasy\Sdk\Create.cs): Doesn't exist
15:08:40.388 |V| | [HtmlReport] Source file 89 (Z:\TeamCityAgent\work\b8aff86b339c02d7\src\FakeItEasy\Sdk\Create.cs): Source server data available (metadata index 16)
15:08:40.403 |V| | Downloading source file https://raw.github.com/FakeItEasy/FakeItEasy/18616a3d1b20758591370b9d9df7b5b514962016/src/FakeItEasy/Sdk/Create.cs
15:08:51.591 |W| | The remote name could not be resolved: 'raw.github.com'
--- EXCEPTION #1/2 [WebException]
Message = “The remote name could not be resolved: 'raw.github.com'”
ExceptionPath = Root.InnerException
ClassName = System.Net.WebException
HResult = COR_E_INVALIDOPERATION=80131509
Source = System
StackTraceString = “
at System.Net.HttpWebRequest.GetResponse()
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.FileDownloader.CoreDownload(Uri fileUri, FileSystemPath targetFile, IWebProxy proxySettings, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.FileDownloader.TryDownload(Uri fileUri, FileSystemPath targetFile, IWebProxy proxySettings, IProgressIndicator progress)
”
--- Outer ---
--- EXCEPTION #2/2 [LoggerException]
Message = “The remote name could not be resolved: 'raw.github.com'”
ExceptionPath = Root
ClassName = JetBrains.Util.LoggerException
InnerException = “Exception #1 at Root.InnerException”
HResult = COR_E_APPLICATION=80131600
StackTraceString = “
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.SourceFilesGetter.TryGetSourceFile(SectionIndex`1 metadataIndex, Int32 documentIndex, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.GetHtmlNodeDetails(Int32 nodeIndex, IList`1 enumeratedItems, ResourcesGenerator resourcesGenerator, SourceFilesGetter sourceFilesGetter, IMetadataSectionAssemblyProvider metadataSectionAssemblyProvider, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.<>c__DisplayClass6.<BuildReport>b__1(Int32 nodeIndex, IProgressIndicator pi)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.IndexFileWriter.WriteIndexFile(Int32 nodesNumber, Func`3 getNodeDetails, String reportFileName, String resourceFolderShortName, Boolean includeEnvironmentSpecificInfo, IProgressIndicator progress)
at JetBrains.dotCover.Workspace.Impl.Reporting.Html.HtmlReportBuilder.BuildReport(String fileName, Boolean includeEnvironmentSpecificInfo, CustomWebProxySettings webProxySettings, ProgressId progressId)
at JetBrains.dotCover.ConsoleRunner.Backend.Commands.Report.ReportCommand.Execute(CommandExecutionContext context)
at JetBrains.dotCover.ConsoleRunner.Backend.ConsoleRunnerBackend.Execute(ICommandLine commandLine, Func`1 componentContainerGetter)
at JetBrains.dotCover.ConsoleRunner.Startup.ConsoleRunnerProgram.Main(String[] args)
”
15:08:51.701 |V| | [HtmlReport] Source file 89 (Z:\TeamCityAgent\work\b8aff86b339c02d7\src\FakeItEasy\Sdk\Create.cs): Failed to download file
15:08:51.701 |V| | [HtmlReport] Source file 97 (Z:\TeamCityAgent\work\b8aff86b339c02d7\src\FakeItEasy\Expressions\ArgumentConstraints\OutArgumentConstraint.cs): Doesn't exist
15:08:51.701 |V| | [HtmlReport] Source file 97 (Z:\TeamCityAgent\work\b8aff86b339c02d7\src\FakeItEasy\Expressions\ArgumentConstraints\OutArgumentConstraint.cs): Source server data available (metadata index 16)
15:08:51.701 |V| | Downloading source file https://raw.github.com/FakeItEasy/FakeItEasy/18616a3d1b20758591370b9d9df7b5b514962016/src/FakeItEasy/Expressions/ArgumentConstraints/OutArgumentConstraint.cs
15:08:53.263 |W| | The remote name could not be resolved: 'raw.github.com'
....
.... continues looong time for each source file in FakeItEasy
....
I can send entire logfile if needed, please provide email adress in that case.
Regards Göran
Hello Goran,
In order to exclude FakeItEasy.dll from the analysis please use the following filter with your "cover" command: /Filters=-:FakeItEasy (without ".*"). It should help to get rid of downloading source files.
Unfortunately, filtering based on source file names is not supported now. You can exclude code from the analysis using assembly names (without extensions), namespaces, class and method names and attribute names.
worked perfectly, thanks a million!!