public void Complete () {
var frame = this.testStack.Pop();
TestExecutionContext context = frame.Item1;
long startTicks = frame.Item2;
TestResult result = frame.Item3;
#if (CLR_2_0 || CLR_4_0) && !SILVERLIGHT && !NETCF_2_0
long tickCount = Stopwatch.GetTimestamp() - startTicks;
double seconds = (double)tickCount / Stopwatch.Frequency;
result.Duration = TimeSpan.FromSeconds(seconds);
#else
result.Duration = DateTime.Now - Context.StartTime;
#endif
result.AssertCount = context.AssertCount;
context.Listener.TestFinished(result);
context = context.Restore();
context.AssertCount += result.AssertCount;
}
}