18 using System.Collections.Generic;
20 using System.Net.Sockets;
21 using System.Reflection;
22 using System.Threading.Tasks;
24 using Android.Content;
26 using NUnit.Framework.Api;
27 using NUnit.Framework.Internal;
29 using NUnit.Framework.Api;
30 using NUnit.Framework.Internal;
32 using NUnit.Framework.Internal.WorkItems;
42 public bool AutoStart {
get; set; }
44 public bool TerminateAfterExecution {
get; set; }
50 public bool OpenWriter (
string message, Context activity)
52 DateTime now = DateTime.Now;
58 Writer.WriteLine (
"[Runner executing:\t{0}]", message);
60 Writer.WriteLine (
"[M4A Version:\t{0}]",
"???");
62 Writer.WriteLine (
"[Board:\t\t{0}]", Android.OS.Build.Board);
63 Writer.WriteLine (
"[Bootloader:\t{0}]", Android.OS.Build.Bootloader);
64 Writer.WriteLine (
"[Brand:\t\t{0}]", Android.OS.Build.Brand);
65 Writer.WriteLine (
"[CpuAbi:\t{0} {1}]", Android.OS.Build.CpuAbi, Android.OS.Build.CpuAbi2);
66 Writer.WriteLine (
"[Device:\t{0}]", Android.OS.Build.Device);
67 Writer.WriteLine (
"[Display:\t{0}]", Android.OS.Build.Display);
68 Writer.WriteLine (
"[Fingerprint:\t{0}]", Android.OS.Build.Fingerprint);
69 Writer.WriteLine (
"[Hardware:\t{0}]", Android.OS.Build.Hardware);
70 Writer.WriteLine (
"[Host:\t\t{0}]", Android.OS.Build.Host);
71 Writer.WriteLine (
"[Id:\t\t{0}]", Android.OS.Build.Id);
72 Writer.WriteLine (
"[Manufacturer:\t{0}]", Android.OS.Build.Manufacturer);
73 Writer.WriteLine (
"[Model:\t\t{0}]", Android.OS.Build.Model);
74 Writer.WriteLine (
"[Product:\t{0}]", Android.OS.Build.Product);
75 Writer.WriteLine (
"[Radio:\t\t{0}]", Android.OS.Build.Radio);
76 Writer.WriteLine (
"[Tags:\t\t{0}]", Android.OS.Build.Tags);
77 Writer.WriteLine (
"[Time:\t\t{0}]", Android.OS.Build.Time);
78 Writer.WriteLine (
"[Type:\t\t{0}]", Android.OS.Build.Type);
79 Writer.WriteLine (
"[User:\t\t{0}]", Android.OS.Build.User);
80 Writer.WriteLine (
"[VERSION.Codename:\t{0}]", Android.OS.Build.VERSION.Codename);
81 Writer.WriteLine (
"[VERSION.Incremental:\t{0}]", Android.OS.Build.VERSION.Incremental);
82 Writer.WriteLine (
"[VERSION.Release:\t{0}]", Android.OS.Build.VERSION.Release);
83 Writer.WriteLine (
"[VERSION.Sdk:\t\t{0}]", Android.OS.Build.VERSION.Sdk);
84 Writer.WriteLine (
"[VERSION.SdkInt:\t{0}]", Android.OS.Build.VERSION.SdkInt);
85 Writer.WriteLine (
"[Device Date/Time:\t{0}]", now);
102 if (test is TestSuite) {
104 Writer.WriteLine (test.Name);
110 AndroidRunner.Results[result.Test.FullName ?? result.Test.Name] = result;
112 if (result.Test is TestSuite)
114 if (!result.IsFailure() && !result.IsSuccess() && !result.IsInconclusive() && !result.IsIgnored())
115 Writer.WriteLine(
"\t[INFO] {0}", result.Message);
117 string name = result.Test.Name;
118 if (!String.IsNullOrEmpty(name))
119 Writer.WriteLine(
"{0} : {1} ms", name, result.Duration.TotalMilliseconds);
123 if (result.IsSuccess())
125 Writer.Write(
"\t[PASS] ");
127 else if (result.IsIgnored())
129 Writer.Write(
"\t[IGNORED] ");
131 else if (result.IsFailure())
133 Writer.Write(
"\t[FAIL] ");
135 else if (result.IsInconclusive())
137 Writer.Write(
"\t[INCONCLUSIVE] ");
141 Writer.Write(
"\t[INFO] ");
143 Writer.Write(result.Test.Name);
145 string message = result.Message;
146 if (!String.IsNullOrEmpty(message))
148 Writer.Write(
" : {0}", message.Replace(
"\r\n",
"\\r\\n"));
152 string stacktrace = result.StackTrace;
153 if (!String.IsNullOrEmpty(result.StackTrace))
155 string[] lines = stacktrace.Split(
new char[] {
'\r',
'\n' }, StringSplitOptions.RemoveEmptyEntries);
156 foreach (
string line
in lines)
157 Writer.WriteLine(
"\t\t{0}", line);
166 Stack<DateTime> time =
new Stack<DateTime> ();
176 get {
return runner; }
179 static List<TestSuite> top =
new List<TestSuite> ();
180 static Dictionary<string,TestSuite> suites =
new Dictionary<string, TestSuite> ();
181 static Dictionary<string,ITestResult> results =
new Dictionary<string, ITestResult> ();
183 static public IList<TestSuite> AssemblyLevel {
188 get {
return suites; }
192 get {
return results; }
197 return Task.Run(() =>
199 TestExecutionContext current = TestExecutionContext.CurrentContext;
200 current.WorkDirectory = Environment.CurrentDirectory;
202 current.GetType().GetField(
"listener", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(current,
this);
203 current.TestObject = test is TestSuite ? null : Reflect.Construct((test as TestMethod).Method.ReflectedType, null);
204 WorkItem wi = test.CreateWorkItem(TestFilter.Empty);
void TestFinished(ITestResult result)
void TestOutput(TestOutput testOutput)
bool OpenWriter(string message, Context activity)
Task< TestResult > Run(NUnit.Framework.Internal.Test test)
void TestStarted(ITest test)
void TestFinished(TestResult result)