Note: Project has been moved to https://github.com/asherber/Xunit.Runner.LinqPad
Run Xunit tests within LinqPad.
void Main()
{
XunitRunner.Run(Assembly.GetExecutingAssembly());
}
// Define other methods and classes here
public class Class1
{
[Fact]
public void PassingTest()
{
Assert.Equal(4, Add(2, 2));
}
[Fact]
public void FailingTest()
{
Assert.Equal(5, Add(2, 2));
}
int Add(int x, int y)
{
return x + y;
}
}XunitRunner includes default actions that write information to the console for OnDiscoveryComplete(), OnExecutionComplete(), OnTestFailed(), and OnTestSkipped(). If you want more control over what happens for these or other events, you can pass an Action<AssemblyRunner> into Run().
Each Action you pass in that takes some action on the UI thread (like Console.WriteLine() should start with lock (XunitRunner.Sync) .
void Main()
{
Action<AssemblyRunner> configure = r =>
{
r.OnTestFailed = i => { lock (XunitRunner.Sync) Console.WriteLine("BIG FAIL"); };
};
XunitRunner.Run(Assembly.GetExecutingAssembly(), configure);
}