private void DoRunCancelingTests(bool killProcesses, int lower)
{
MockOptions.Setup(o => o.KillProcessesOnCancel).Returns(killProcesses);
List <Model.TestCase> testCasesToRun = TestDataCreator.GetTestCases("Crashing.LongRunning", "LongRunningTests.Test2");
testCasesToRun.Should().HaveCount(2);
var stopwatch = new Stopwatch();
var executor = new TestExecutor(TestEnvironment.Logger, TestEnvironment.Options, MockDebuggerAttacher.Object);
var canceller = new Thread(() =>
{
Thread.Sleep(WaitBeforeCancelInMs);
executor.Cancel();
});
canceller.Start();
stopwatch.Start();
executor.RunTests(testCasesToRun.Select(tc => tc.ToVsTestCase()), MockRunContext.Object, MockFrameworkHandle.Object);
stopwatch.Stop();
canceller.Join();
stopwatch.ElapsedMilliseconds.Should().BeInRange(lower, lower + OverheadInMs);
}