Windows | Linux (Mono) | OS X (Mono) |
---|---|---|
This project adds C# support for Gauge testing. Read more about Gauge here.
You can download Gauge here
This repository hosts three projects, Core
, Lib
and Runner
.
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.
Lib
is a dll that brings in Gauge's data types to C#. It is hosted in Nuget.
Read more about Lib
here.
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.
Installing the runner is done via Gauge Core. This means that you need Gauge installed as a pre-requisite. You can download Gauge here.
Once you have Gauge installed, add the csharp plugin using:
gauge --install csharp
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
On mono:
./build.sh RunTests
On Windows
build.cmd RunTests
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 ofCHANGELOG.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 ofLib/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 ofCore/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
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>
Update the submodule and run the gen-proto
command:
git submodule update
run.bat gen-proto
- 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-csharp is released under GNU Public License version 3.0
Copyright 2015 ThoughtWorks, Inc.