public virtual void InitTests() { m_currentTestClass = this.GetType(); if (m_timings == null) { object[] attrs; // Get the list of tests for this class and fixture setup method. foreach (MethodInfo method in m_currentTestClass.GetMethods()) { if (m_fixtureSetup == null) { attrs = method.GetCustomAttributes( typeof(TestFixtureSetUpAttribute), true); if (attrs != null && attrs.Length > 0) { m_fixtureSetup = method; } } attrs = method.GetCustomAttributes( typeof(TestAttribute), true); if (attrs != null && attrs.Length > 0) { m_tests.Add(method); } } m_timeBomb.SetFixtureSetup(m_fixtureSetup, this); // Get the default timeout string timingsFile = TimeoutsXML; m_timings = XmlNodeReaderWriter.GetInstance(timingsFile); try { string timeoutStr = m_timings.GetAttribute( '/' + XmlNodeReaderWriter.RootNodeName, TimeoutAttribName); if (timeoutStr != null) { m_defaultTimeoutMillis = int.Parse(timeoutStr) * 1000; } } catch (Exception ex) { Util.Log("Got an exception while setting default timeout from {0}: {1}", timingsFile, ex); m_defaultTimeoutMillis = -1; } NUnitMethodComparer mComp = new NUnitMethodComparer(); m_tests.Sort(mComp); } SetLogging(GetClassLogFile()); m_clients = GetClients(); m_timeBomb.AddClients(m_clients); SetClientLogging(); }
public virtual void InitTest() { if (m_currentTestNumber < m_tests.Count) { m_currentTest = m_tests[m_currentTestNumber]; m_currentTestNumber++; SetLogging(GetLogFile()); SetClientLogging(); int timeout = m_defaultTimeoutMillis; if (m_defaultTimeoutMillis > 0) { string timingsFile = TimeoutsXML; try { // Find the timeout set for this test in the Settings file. string timeoutStr = m_timings.GetAttribute( XmlNodeReaderWriter.GetPathForNode(m_currentTest), TimeoutAttribName); if (timeoutStr != null) { timeout = int.Parse(timeoutStr) * 1000; } } catch (Exception ex) { Util.Log("Got an exception while setting timeout from {0}: {1}", timingsFile, ex); timeout = m_defaultTimeoutMillis; } } else { timeout = Timeout.Infinite; } DateTime now = DateTime.Now; Console.WriteLine("[{0}:{1}:{2}.{3}] Set the timeout to {4} secs.{5}", now.Hour.ToString("D02"), now.Minute.ToString("D02"), now.Second.ToString("D02"), now.Millisecond.ToString("D03"), timeout / 1000, Environment.NewLine); Util.Log("INIT:: Starting next test in {0} with timeout as {1} secs.", this.GetType().FullName, timeout / 1000); m_timeBomb.TaskName = GetTaskName(); m_timeBomb.Start(timeout); } }