Gauge csharp runner
C# F# PowerShell Other
Permalink
Failed to load latest commit information.
.github Adding issue template. May 4, 2016
.paket #74 initial migration to FAKE and paket Jun 7, 2016
Core Removing Google.ProtocolBuffers Jan 20, 2017
Gauge.FSharpHelper removed redundant logging, fixes #98 Oct 24, 2016
Gauge.Project.Skel #74 update skel to fit zip package requirements Jun 7, 2016
IntegrationTestSample scan for ContinueOnfailure step methods in GaugeMethod #83 Jul 12, 2016
Lib.UnitTests Updating paket.dependencies Jan 19, 2017
Lib Generating *.cs files from latest gauge-proto messages Oct 17, 2016
Runner.IntegrationTests Using latest core in runner Jan 19, 2017
Runner.UnitTests Using latest core in runner Jan 19, 2017
Runner Removing Google.ProtocolBuffers Jan 20, 2017
build Updating gen-proto script to use os specific proto compiler. Jan 16, 2017
gauge-proto @ 866c08a Pointing to latest gauge-proto. Jan 16, 2017
.gitattributes Updating .gitattributes for line endings Jan 23, 2017
.gitignore merge PR #82 Jul 1, 2016
.gitmodules Update .gitmodules Dec 28, 2015
.travis.yml Updating travis build script. Jan 23, 2017
CHANGELOG.md removed redundant logging, fixes #98 Oct 24, 2016
CONTRIBUTING.md Create CONTRIBUTING.md Dec 1, 2015
COPYING Create COPYING Feb 6, 2015
Gauge.CSharp.Core.sln Added support for DI container using Autofac. Can be enabled by setin… Jul 1, 2016
Gauge.CSharp.Lib.sln Added support for DI container using Autofac. Can be enabled by setin… Jul 1, 2016
Gauge.CSharp.NoTests.sln #74 initial migration to FAKE and paket Jun 7, 2016
Gauge.CSharp.sln Added support for DI container using Autofac. Can be enabled by setin… Jul 1, 2016
README.MD fixed formatting in README Jun 20, 2016
appveyor.yml Add gitter notification webhook for appveyor Dec 9, 2016
build.cmd #74 initial migration to FAKE and paket Jun 7, 2016
build.fsx use 'csharp' tag while executing specs Sep 13, 2016
build.sh #74 initial migration to FAKE and paket Jun 7, 2016
install_latest_gauge_nightly.ps1 add gauge latest nightly install script Jul 14, 2016
install_latest_gauge_nightly.sh add gauge latest nightly install script Jul 14, 2016
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 Removing Google.ProtocolBuffers Jan 20, 2017
paket.lock Removing Google.ProtocolBuffers Jan 20, 2017
run.bat do not quote parameters when invoking build script Mar 1, 2016

README.MD

C# support for Gauge

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

Download Nightly

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.

Gauge Core

Internal Gauge Use Only

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 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 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.

Gauge-Proto

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.

Developer notes

Install

Runner

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

Lib

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.

Build

On mono:

./build.sh CopyBinaries

On Windows

build.cmd CopyBinaries

Tests

Unit/Integration

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>

Package

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

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>

Regenerate the API messages (protocol buffer api changes)

Update the submodule and run the gen-proto command:

git submodule update
run.bat gen-proto

Development Environment Setup

Windows

  • 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).

Linux

For building and unit testing you only need mono.

License

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

Copyright

Copyright 2015 ThoughtWorks, Inc.