VS 2015 не может открыть .coveragexml, сгенерированный CodeCoverage.exe

Я следую Импорт результатов покрытия кода (C#, VB.NET) документация для SonarQube.

Для моего проекта я могу создать двоичный файл тестового покрытия как "SonarQubeTests.csproj.coverage"

Visual Studio может без проблем открыть этот файл. Я вижу все детали.

Затем, когда я пытаюсь создать файл «.coveragexml» с помощью следующей команды;

"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" "analyze /output:C:\SonarQubeTests.csproj.coveragexml C:\SonarQubeTests.csproj.coverage"

Он генерирует файл «.coveragexml», но когда я пытаюсь открыть Visual Studio, он выдает следующую ошибку:

введите здесь описание изображения

Я могу открыть этот файл в текстовом редакторе, и с содержимым все в порядке. Но ни Visual Studio 2015, ни sonarqube этот файл не читает.

Что мне здесь не хватает?

PS У меня также есть настройки бегуна для Ms Test runner, как показано ниже. Не уверен, что это на что-то повлияет;

    <?xml version="1.0" encoding="utf-8"?>  
<RunSettings>  
  <!-- Configurations that affect the Test Framework -->  
  <RunConfiguration>  
    <MaxCpuCount>1</MaxCpuCount>  
    <!-- Path relative to solution directory -->  
    <ResultsDirectory>C:\</ResultsDirectory>  

    <!-- [x86] | x64    
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->  
    <TargetPlatform>x86</TargetPlatform>  

    <!-- Framework35 | [Framework40] | Framework45 -->  
    <TargetFrameworkVersion>Framework45</TargetFrameworkVersion>  

    <!-- Path to Test Adapters -->  
    <TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>  
  </RunConfiguration>  

  <!-- Configurations for data collectors -->  
  <DataCollectionRunSettings>  
    <DataCollectors>  
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">  
        <Configuration>  
          <CodeCoverage>  
            <ModulePaths>  
              <Exclude>  
                <ModulePath>.*CPPUnitTestFramework.*</ModulePath>  
              </Exclude>  
            </ModulePaths>  

            <!-- We recommend you do not change the following values: -->  
            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>  
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>  
            <CollectFromChildProcesses>True</CollectFromChildProcesses>  
            <CollectAspDotNet>False</CollectAspDotNet>  

          </CodeCoverage>  
        </Configuration>  
      </DataCollector>  

    </DataCollectors>  
  </DataCollectionRunSettings>  

  <!-- Parameters used by tests at runtime -->  
  <TestRunParameters>  
    <Parameter name="webAppUrl" value="http://localhost" />  
    <Parameter name="webAppUserName" value="Admin" />  
    <Parameter name="webAppPassword" value="Password" />  
  </TestRunParameters>  

  <!-- Adapter Specific sections -->  

  <!-- MSTest adapter -->  
  <MSTest>  
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>  
    <CaptureTraceOutput>false</CaptureTraceOutput>  
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>  
    <DeploymentEnabled>False</DeploymentEnabled>  
    <AssemblyResolution>  
      <Directory Path="D:\myfolder\bin\" includeSubDirectories="false"/>  
    </AssemblyResolution>  
  </MSTest>  

</RunSettings>

person Teoman shipahi    schedule 21.03.2017    source источник


Ответы (1)


Я думаю, вы могли бы использовать vstest.console для прямого покрытия кода. Мы не уверены, сможет ли VS открыть покрытие кода, созданное сторонними инструментами. Я думаю, что если бы мы могли vstest.console получить покрытие кода, проблем бы не было. Пожалуйста, попробуйте, чтобы увидеть результаты.

person qianli    schedule 23.03.2017
comment
CodeCoverage.exe не является третьей стороной. Я использую его для создания .coveragexml. Я уже использую vstest.console.exe для создания файла .covagare. - person Teoman shipahi; 23.03.2017
comment
затем вы можете напрямую перетащить файл .coverage в VS и экспортировать его в файлcoverxml. - person qianli; 24.03.2017
comment
пожалуйста, внимательно прочитайте вопрос. Мне не нужен ручной процесс, это шаг для процесса SonarQube, где я пытаюсь следовать документации. - person Teoman shipahi; 24.03.2017
comment
если файл не может быть открыт с помощью SonarQube peocess, я думаю, что эта проблема связана с SonarQube. - person qianli; 24.03.2017