public override View GetView (Context context, View convertView, ViewGroup parent)
{
View view = base.GetView (context, convertView, parent);
view.Click += delegate {
if (TestCase.RunState != RunState.Runnable)
return;
AndroidRunner runner = AndroidRunner.Runner;
if (!runner.OpenWriter ("Run " + TestCase.FullName, context))
return;
var suite = (TestCase.Parent as TestSuite);
while(suite != null && suite.arguments == null) {
suite = suite.Parent as TestSuite;
}
var testContext = TestExecutionContext.CurrentContext;
testContext.TestObject = Reflect.Construct (TestCase.Method.ReflectedType, suite.arguments);
try {
suite.GetOneTimeSetUpCommand ().Execute (testContext);
Run ();
suite.GetOneTimeTearDownCommand ().Execute (testContext);
}
finally {
runner.CloseWriter ();
}
if ((TestCase.RunState == RunState.Runnable) && !Result.IsSuccess()) {
Intent intent = new Intent (context, typeof (TestResultActivity));
intent.PutExtra ("TestCase", Name);
intent.AddFlags (ActivityFlags.NewTask);
context.StartActivity (intent);
}
};
return view;
}