Skip to content

cqse/teamscale-profiler-dotnet

Repository files navigation

Teamscale Ephemeral .NET Profiler Build status

Lightweight profiler for .NET applications that provides method-level coverage information to support Test Gap Analysis in Teamscale.

System Requirements

.NET Framework 4.5 or newer must be installed.

Download

The latest (and previous) releases can be downloaded from the GitHub Release website.

Documentation

Documentation on installation and usage of the profiler can be found here.

Contributing

The coverage profiler can be compiled using Visual Studio 2017. Ensure to have the Windows and .NET SDK installed. Please also install CodeMaid to enable formatting the source code automatically on save. This keeps the code consistently formatted for everyone.

Unit tests exist in the form of .NET NUnit tests. These are included in the same solution as the profiler. During development, always build the Win32 variant as this is configured to also build the x64 variant as well. This way, the integration tests are run correctly against both variants.

Automatic build and testing is performed in a GitHub action.

Linking against System Libraries

We use #pragma comment(lib, "LIBRARYNAME.lib") to specify link-time dependencies directly in the source file that needs the dependency. This way, the dependencies are versioned more explicitly with the code and it's immediately clear which parts of the code need the linked library.

So please don't add any linked libraries to the solution configuration unless absolutely necessary.

Release Process

The release process is automated with GitHub Releases and Appveyor:

We use YY.MM.revison version scheme, e.g. v18.2.0.

  1. Edit CHANGELOG.md and create a new release section with all changes in the release.
  2. Commit the changes to master directly.
  3. Go to GitHub Releases and draft a new release.
  4. Enter the tag name and release name. Give both the same name, e.g. v18.2.0.
  5. Copy-paste the CHANGELOG.md content of this release into the description.
  6. Publish the release.
  7. THe GitHub action will then take care of attaching the release binary. Ensure this is done properly.