private void AcceptCallback(TcpClient client)
        {
            m_Repaint = true;
            ResultDTO dto;
            try
            {
                m_LastMessageReceived = DateTime.Now;
                using (var stream = client.GetStream())
                {
                    var bf = new BinaryFormatter();
                    dto = (ResultDTO)bf.Deserialize(stream);
                    stream.Close();
                }
                client.Close();
            }
            catch (ObjectDisposedException e)
            {
                Debug.LogException(e);
                m_StatusLabel = "Got disconnected";
                return;
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                return;
            }

            switch (dto.messageType)
            {
                case ResultDTO.MessageType.TestStarted:
                    m_StatusLabel = dto.testName;
                    m_TestTimeout = TimeSpan.FromSeconds(dto.testTimeout);
                    break;
                case ResultDTO.MessageType.TestFinished:
                    m_TestResults.Add(dto.testResult);
                    m_TestTimeout = TimeSpan.Zero;
                    if (dto.testResult.Executed && dto.testResult.ResultState != TestResultState.Ignored && !dto.testResult.IsSuccess)
                        m_TestFailed = true;
                    break;
                case ResultDTO.MessageType.RunStarted:
                    m_TestResults = new List<ITestResult>();
                    m_StatusLabel = "Run started: " + dto.loadedLevelName;
                    break;
                case ResultDTO.MessageType.RunFinished:
                    WriteResultsToLog(dto, m_TestResults);
                    if (!string.IsNullOrEmpty(m_Configuration.resultsDir))
                    {
                        var platform = m_Configuration.runInEditor ? "Editor" : m_Configuration.buildTarget.ToString();
                        var resultWriter = new XmlResultWriter(dto.loadedLevelName, platform, m_TestResults.ToArray());
                        try
                        {
                            var filePath = Path.Combine(m_Configuration.resultsDir, dto.loadedLevelName + ".xml");
                            File.WriteAllText(filePath, resultWriter.GetTestResult());
                        }
                        catch (Exception e)
                        {
                            Debug.LogException(e);
                        }
                    }
                    if (dto.levelCount - dto.loadedLevel == 1)
                    {
                        m_Running = false;
                        m_RunFinished = true;
                    }
                    break;
                case ResultDTO.MessageType.Ping:
                    break;
            }
        }
        private void AcceptCallback(TcpClient client)
        {
            m_Repaint = true;
            ResultDTO dto;

            try
            {
                m_LastMessageReceived = DateTime.Now;
                using (var stream = client.GetStream())
                {
                    var bf = new DTOFormatter();
                    dto = (ResultDTO)bf.Deserialize(stream);
                    stream.Close();
                }
                client.Close();
            }
            catch (ObjectDisposedException e)
            {
                Debug.LogException(e);
                m_StatusLabel = "Got disconnected";
                return;
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                return;
            }

            switch (dto.messageType)
            {
            case ResultDTO.MessageType.TestStarted:
                m_StatusLabel = dto.testName;
                m_TestTimeout = TimeSpan.FromSeconds(dto.testTimeout);
                break;

            case ResultDTO.MessageType.TestFinished:
                m_TestResults.Add(dto.testResult);
                m_TestTimeout = TimeSpan.Zero;
                if (dto.testResult.Executed && dto.testResult.ResultState != TestResultState.Ignored && !dto.testResult.IsSuccess)
                {
                    m_TestFailed = true;
                }
                break;

            case ResultDTO.MessageType.RunStarted:
                m_TestResults = new List <ITestResult>();
                m_StatusLabel = "Run started: " + dto.loadedLevelName;
                break;

            case ResultDTO.MessageType.RunFinished:
                WriteResultsToLog(dto, m_TestResults);
                if (!string.IsNullOrEmpty(m_Configuration.resultsDir))
                {
                    var platform     = m_Configuration.runInEditor ? "Editor" : m_Configuration.buildTarget.ToString();
                    var resultWriter = new XmlResultWriter(dto.loadedLevelName, platform, m_TestResults.ToArray());
                    try
                    {
                        if (!Directory.Exists(m_Configuration.resultsDir))
                        {
                            Directory.CreateDirectory(m_Configuration.resultsDir);
                        }
                        var filePath = Path.Combine(m_Configuration.resultsDir, dto.loadedLevelName + ".xml");
                        File.WriteAllText(filePath, resultWriter.GetTestResult());
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
                }
                break;

            case ResultDTO.MessageType.AllScenesFinished:
                m_Running     = false;
                m_RunFinished = true;
                break;

            case ResultDTO.MessageType.Ping:
                break;
            }
        }
        private void AcceptCallback(TcpClient client)
        {
            repaint = true;
            ResultDTO dto = null;

            try
            {
                lastMessageReceived = DateTime.Now;
                using (var stream = client.GetStream())
                {
                    var bf = new BinaryFormatter();
                    dto = (ResultDTO)bf.Deserialize(stream);
                    stream.Close();
                }
                client.Close();
            }
            catch (ObjectDisposedException e)
            {
                Debug.LogException(e);
                statusLabel = "Got disconnected";
                return;
            }
            catch (Exception e)
            {
                Debug.LogException(e);
                return;
            }

            switch (dto.messageType)
            {
            case ResultDTO.MessageType.TestStarted:
                statusLabel = dto.testName;
                testTimeout = TimeSpan.FromSeconds(dto.testTimeout);
                break;

            case ResultDTO.MessageType.TestFinished:
                testResults.Add(dto.testResult);
                testTimeout = TimeSpan.Zero;
                if (dto.testResult.Executed && !dto.testResult.IsSuccess)
                {
                    testFailed = true;
                }
                break;

            case ResultDTO.MessageType.RunStarted:
                testResults = new List <ITestResult> ();
                statusLabel = "Run started: " + dto.loadedLevelName;
                break;

            case ResultDTO.MessageType.RunFinished:
                WriteResultsToLog(dto, testResults);
                if (!string.IsNullOrEmpty(configuration.resultsDir))
                {
                    var resultWriter = new XmlResultWriter(dto.loadedLevelName, testResults.ToArray());
                    try
                    {
                        var filePath = Path.Combine(configuration.resultsDir, dto.loadedLevelName + ".xml");
                        File.WriteAllText(filePath, resultWriter.GetTestResult());
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
                }
                if (dto.levelCount - dto.loadedLevel == 1)
                {
                    running     = false;
                    runFinished = true;
                }
                break;

            case ResultDTO.MessageType.Ping:
                break;
            }
        }