Prerequisites

Microsoft run-time components

Install Microsoft Visual C++ Redistributable for Visual Studio 2017 from: https://www.visualstudio.com/downloads/

You can use the PowerShell commands below to install these prerequisites via a script

iwr -OutFile vc_redist.x86.exe -UseBasicParsing -Uri https://go.microsoft.com/fwlink/?LinkId=746571 
Start-Process -FilePath vc_redist.x86.exe -ArgumentList "/Q" -Wait
iwr -OutFile vc_redist.x64.exe -UseBasicParsing -Uri https://go.microsoft.com/fwlink/?LinkId=746572 
Start-Process -FilePath vc_redist.x64.exe -ArgumentList "/Q" -Wait
POWERSHELL

Agent Token and Proxy settings

If needed, configure the coverage collector service by editing the SL.DotNet.CoverageCollectorService.exe.config file:

  • If you have not placed the sltoken.txt in the agents' folder, then, in Sealights.Token put the token you've received from SeaLights

  • If a proxy is used, add a key named 'Sealights.Proxy' and set the value to a URL like "http://127.0.0.1:8888"

Coverage Collector Service Installation

  • As an Administrator, install and start the coverage collector service: 

    SL.DotNet.CoverageCollectorService.exe install start
    CODE
  • Register our agent as a profiler in the services registry settings.

    1. Go to the registry under the following key: HK_LOCAL_MACHINE\System\CurrentControlSet\Services\{YourService}

    2. Add a Multi-String value called 'Environment' containing the following

      Cor_Profiler={01CA2C22-DC03-4FF5-8350-59E32A3536BA}
      Cor_Enable_Profiling=1
      COR_PROFILER_PATH_32=<PATH TO SL.DotNet.ProfilerLib_x86.dll>
      COR_PROFILER_PATH_64=<PATH TO SL.DotNet.ProfilerLib_x64.dll>
      SL_CollectorId=GlobalCollector
      TEXT
  • Restart your service manually via the Service Manager console or the following PowerShell command

    Restart-Service -Name {YourService} -Force
    POWERSHELL

Capturing coverage

During the time you want to run your tests and capture coverage you can now start and stop the coverage collection of the SeaLights agent test listener

Starting coverage collection session

Before you start running your tests, you need to update the SeaLights test listener to start collecting coverage. You do so with the startCollectorServiceSession parameter.

SL.DotNet.exe startCollectorServiceSession --buildSessionIdFile buildSessionId.txt --processName YourProcess.exe --includeChildProcesses true
POWERSHELL

Note that this can be run on a remote machine (like the CI running the tests) while providing the host to start the session on using the parameter: --machine <host> 

Running your tests

Now you can run any one of your tests that run against this service and capture coverage

See 'SeaLights .NET agent - Running tests' for details of how to run tests

Stopping coverage collection session

SL.DotNet.exe stopCollectorServiceSession --buildSessionIdFile buildSessionId.txt --processName YourProcess.exe
POWERSHELL

Note that this can be run on a remote machine (like the CI running the tests) while providing the host to start the session on using the parameter: --machine <host> 

See 'SeaLights .NET - command reference' for full parameter details