Skip to content

Instantly share code, notes, and snippets.

@acken
Created October 25, 2013 08:55
Show Gist options
  • Save acken/7151666 to your computer and use it in GitHub Desktop.
Save acken/7151666 to your computer and use it in GitHub Desktop.
ContinuousTests headless engine using the ContinuousTests.ExtensionModel.dll
using System;
using System.Linq;
using ContinuousTests.ExtensionModel;
using ContinuousTests.ExtensionModel.Arguments;
namespace test
{
class Program
{
static void Main(string[] args)
{
// Locate engine running at specified token
var engine = new EngineRepository().GetEngine(@"/home/ack/src/OpenIDE", true);
if (engine == null) {
// If not already running start a new engine specifying new token and CT bin dir
engine = new EngineRepository()
.StartEngine(
@"/home/ack/src/OpenIDE",
@"/home/ack/src/OpenIDE/ReleaseBinaries/.OpenIDE/languages/C#-files/bin/ContinuousTests");
}
// Bind session events
engine.EngineConnecting += engine_EngineConnecting;
engine.EngineDisconnecting += engine_EngineDisconnecting;
engine.SessionStarted += engine_SessionStarted;
engine.SessionFinished += engine_SessionFinished;
engine.BuildFinished += engine_BuildFinished;
engine.TestsFinished += engine_TestsFinished;
engine.TestProgress += engine_TestProgress;
// Connect to engine
engine.Connect();
System.Console.WriteLine("Waiting for connection");
engine.WaitForConnection();
System.Console.WriteLine("System connected");
// Now we can either wait for file change triggered test runs or start one ourself
engine.RunAll();
//engine.RunPartial(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\AutoTest.Test.csproj");
//engine.RunTests(new TestScope(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\AutoTest.Test.csproj"));
System.Console.WriteLine("Done");
System.Console.ReadLine();
// Shutdown engine
engine.Disconnect();
}
static void engine_EngineDisconnecting(object sender, EventArgs e)
{
System.Console.WriteLine("Engine disconnecting");
}
static void engine_TestProgress(object sender, ImmediateTestFeedbackArgs e)
{
System.Console.WriteLine("Completed {0} tests, current assembly {1}", e.TestsCompleted, e.CurrentAssembly);
}
static void engine_TestsFinished(object sender, TestsFinishedArgs e)
{
e.All.ToList()
.ForEach(x => System.Console.WriteLine("{1} {0}", x.Name, x.Status));
}
static void engine_BuildFinished(object sender, BuildFinishedArgs e)
{
System.Console.WriteLine(string.Format("Built {0} with {1} errors and {2} warnings", e.Project, e.ErrorCount, e.WarningCount));
}
static void engine_SessionFinished(object sender, SessionFinishedArgs e)
{
System.Console.WriteLine("Run finished with {0} failed builds and {1} tests", e.Run.NumberOfBuildsFailed, e.Run.NumberOfTestsRan);
}
static void engine_SessionStarted(object sender, EventArgs e)
{
System.Console.WriteLine("Run started");
}
static void engine_EngineConnecting(object sender, EventArgs e)
{
System.Console.WriteLine("Engine connecting");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment