Csharp runner for Gauge
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Adding issue template. May 4, 2016
.paket Updated paket.bootstrapper.exe to address TLS 1.0 and 1.1 deprecation Feb 28, 2018
Gauge.Project.Skel Make CSharp Runner build Configuration and Platform Configurable (#132) Jun 14, 2018
IntegrationTestSample Added support for running asynchronous Steps #151 Nov 28, 2018
Runner.IntegrationTests Added support for running asynchronous Steps #151 Nov 28, 2018
Runner.UnitTests Collecting step execution screenshots in step result (#147) Aug 16, 2018
Runner Added support for running asynchronous Steps #151 Nov 28, 2018
build upgrade to FAKE 5. (#139) Jul 9, 2018
.gitattributes Updating .gitattributes for line endings Jan 23, 2017
.gitignore serialize ExecutionContext before sending it to the appdomain, #136 Jul 15, 2018
.gitmodules Update .gitmodules Dec 28, 2015
.travis.yml upgrade to FAKE 5. (#139) Jul 9, 2018
CHANGELOG.md Bumping version to 0.10.6 Sep 4, 2018
CONTRIBUTING.md Updating cla link Nov 7, 2018
COPYING Create COPYING Feb 6, 2015
Gauge.CSharp.NoTests.sln #74 initial migration to FAKE and paket Jun 7, 2016
Gauge.CSharp.sln remove Gauge.FSharphelper Apr 13, 2017
README.MD fixing lib and core links Nov 7, 2018
appveyor.yml add support for capturing ScreenShot in Step, getgauge/gauge#632 (#135) Jul 10, 2018
build.cmd upgrade to FAKE 5. (#139) Jul 9, 2018
build.fsx Added support for running asynchronous Steps #151 Nov 28, 2018
build.sh upgrade to FAKE 5. (#139) Jul 9, 2018
install_latest_gauge_nightly_deb.sh travis: install gauge via deb Sep 29, 2017
logo-32x32.png hook execution can now be filtered using tags, fixes #17 Jun 3, 2015
logo-64x64.png updated lib to 0.3.0 Jun 3, 2015
paket.dependencies Added support for running asynchronous Steps #151 Nov 28, 2018
paket.lock Added support for running asynchronous Steps #151 Nov 28, 2018
run.bat do not quote parameters when invoking build script Mar 1, 2016



Windows Linux / OS X (Mono)
Build status Build Status

Download Nightly

This project adds C# language plugin for gauge.

Getting started



gauge install csharp

Create a gauge-csharp project

gauge init csharp

Run tests

gauge run specs

Alternate Installation options

Install specific version

  • Installing specific version
gauge install csharp --version 0.10.1

Offline installation

gauge install csharp --file gauge-csharp-0.10.1.zip

Nightly installation

To install csharp nightly, download the latest nightly from here.

Once you have the downloaded nightly gauge-csharp-version.nightly-yyyy-mm-dd.zip, install using:

gauge install csharp -f gauge-csharp-version.nightly-yyyy-mm-dd.zip

Build from Source

The plugin is authored in C#. Gauge is authored in golang. These are independent processes talking to each other over TCP on port GAUGE_INTERNAL_PORT (env variable) using Protobuf.

Development Environment Setup
Additional Requirements

Apart from Gauge and [.NET Framework], you will need

  • Use BoxStarter to setup Windows box.
    • Install Windows
    • Hit http://bit.ly/20pMrXY from Internet Explorer/Edge.
    • Install Visual Studio and Resharper separately (You could consider installing from an ISO).

For building and unit testing you only need mono.

Gauge Lib

Lib is a dll that brings in Gauge's data types to C#. It is hosted in Nuget.

Read more about Lib here.

Gauge Core

Core is a dll that brings in Gauge's API and connection to C#, and also holds the protobuf communication code. It is hosted in Nuget, and is not listed in the search results. This package is used by Lib and Runner only.

Read more about Core here.

Gauge CSharp Runner

Runner is an executable that is invoked by Gauge Core. The Runner acts a bridge between C# test code and Gauge's API.

Read more about Runner here.


This is a submodule of the repository https://github.com/getgauge/gauge-proto. This repository holds the .proto files that act as contracts between Gauge and the plugins. This submodule needs to be fetched to generate the protobuf classes.


The Lib is a reference that you can add to your test project, as you would do with any Nuget package.

You will need Gauge and Gauge-csharp plugin installed before installing Lib.


On mono:

./build.sh CopyBinaries

On Windows

build.cmd CopyBinaries
Regenerate the API messages (protocol buffer api changes)

Update the submodule and run the gen-proto command:

git submodule update
run.bat gen-proto
Unit/Integration Tests

On mono:

./build.sh RunTests

On Windows

build.cmd RunTests
Functional Tests

For running functional tests

  • gauge
  • java 1.8
  • maven

Choose from the below targets (whichever is applicable)

Target Purpose
FunctionalTests Runs all functional tests without unimplemented tag
FunctionalTestsP Same as FunctionalTests but runs in parallel
FunctionalTestsUnimplemented Runs all functional tests with unimplemented tag, ideally these should fail
FunctionalTestsPUnimplemented Same as FunctionalTestsUnimplemented but runs in parallel
BuildInstallFT Builds, runs Unit and Integration tests, installs Gauge-CSharp from artifact, and triggers FunctionalTestsP

On mono:

./build.sh <target>

On Windows:

build.cmd <target>

On mono:

./build.sh Package

On Windows:

build.cmd Package

All artifacts are genereated in .\artifacts folder.

  • The plugin is zipped to artifacts/gauge-csharp/gauge-csharp-<runner-version>.zip, where <runner-version> is from top of CHANGELOG.md file.
  • The Lib Nuget package is put at artifacts/gauge-csharp-lib/Gauge.CSharp.Lib.<lib-version>.nupkg, where <lib-version> is from top of Lib/CHANGELOG.md file.
  • The Core Nuget package is put at artifacts/gauge-csharp-core/Gauge.CSharp.Core.<core-version>.nupkg, where <core-version> is from top of Core/CHANGELOG.md file.

Zip distribution in artifacts/gauge-csharp/gauge-csharp-<runner-version>.zip can be created with On mono:

./build.sh Zip

On Windows

build.cmd Zip
Install the plugin

To install a local version of the plugin, choose from the below targets (whichever is applicable)

Target Purpose
Install Installs Runner from generated Artifact
ForceInstall Same as Install, but removes conflicting version if already installed

On mono:

./build.sh <target>

On Windows:

build.cmd <target>


GNU Public License version 3.0 Gauge-csharp is released under GNU Public License version 3.0


Copyright 2015 ThoughtWorks, Inc.