2

Я столкнулся с повторяющейся проблемой с несколькими различными проектами, использующими MSTest в VS2012, где время от времени мое покрытие кода перестает работать (по-видимому, наугад) и вместо этого дает мне:Покрытие кода Результаты периодически дают: Пустые полученные результаты

Empty results generated: No binaries were instrumented. Make sure the tests ran, required binaries were loaded, had matching symbol files, and were not excluded through custom settings. For more information see http://go.microsoft.com/fwlink/?LinkID=253731

Я проверил очевидное (что он предложил), но, похоже, не может понять, что вызывает его.

Вот мой runsettings файл:

<?xml version="1.0" encoding="utf-8"?> 
<RunSettings> 
    <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> 
       <Include> 
       <ModulePath>.*\.dll$</ModulePath> 
       </Include> 
       <Exclude> 
       <ModulePath>.*\.tests.dll</ModulePath> 
       </Exclude> 
      </ModulePaths> 
      <Attributes> 
       <Exclude> 
       <Attribute>.*ExcludeFromCodeCoverageAttribute$</Attribute> 
       <Attribute>.*GeneratedCodeAttribute$</Attribute> 
       </Exclude> 
      </Attributes> 

      <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation> 
      <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses> 
      <CollectFromChildProcesses>True</CollectFromChildProcesses> 
      <CollectAspDotNet>False</CollectAspDotNet> 
      </CodeCoverage> 
     </Configuration> 
     </DataCollector> 
    </DataCollectors> 
    </DataCollectionRunSettings> 
</RunSettings> 

ответ

6

Эта ссылка решить мою проблему: Issue with Code Coverage in VS 2012

Закрыть Visual Studio 2012, найти .suo файл, удалить (или переименовать) его, рестарт. Отлично. Не знаю, что находится в файле .suo, что предотвращает надлежащий анализ покрытия.

1

Если вы не можете заставить Code Coverage работать даже после того, как вы удалили файл * .suo, пожалуйста, проверьте свои ошибки Event Viewer. В моем случае, после каждого запуска я имел следующую ошибку:

«TraceLog Profiler не удалось при инициализации из-за отсутствия методов приборов, процесс vstest.executionengine.x86.exe»

Я нашел ответ here.

В случае, если ссылка больше не доступны, я вставив содержимое здесь:

If you find yourself with a an empty .coverage file and see errors similar to the below in your event logs you most probably have a corrupt install

(info) .NET Runtime version 4.0.30319.17929 - The profiler has requested that the CLR instance not load the profiler into this process. Profiler CLSID: '{b19f184a-cc62-4137-9a6f-af0f91730165}'. Process ID (decimal): 12624. Message ID: [0x2516].

(Error) TraceLog Profiler failed in initialization due to a lack of instrumentation methods, process vstest.executionengine.x86.exe

Check

a) Environment variable VS110COMNTOOLS is set to \common7\tools

b) Regkey HKLM\SOFTWARE\Microsoft\VisualStudio\11.0\InstallDir is set to your \Common7\IDE\

c) covrun32.dll and covrun64.dll exist in "\Team Tools\Dynamic Code Coverage"

Успехов,

Надав

+0

Спасибо! Обновление переменных среды устранило проблему для одного из моих разработчиков, которые изначально были установлены на C: а затем переустановлены на D :. Удаление/переустановка не обновляла переменные среды. – AndrewWhalan

1

Я имел подобный проблемы после запуска PerfView.

Повторное выполнение первью, скопировав его в собственную папку и запустить запуск коллекции, а затем остановить ее, похоже, устранили проблему.

я получал ошибки 0x8007007e загрузке профилировщика с GUID из {9999995d-2cbb-4893-be09-fce80abc7564} (Vs2015 профилировщик) и {6652970f-1756-5d8d-0805-e9aad152aa84} (perfview профилировщик)

Надеюсь, что это поможет кому-то другому.

Смежные вопросы