{"action":"created","issue":{"url":"https://api.github.com/repos/nunit/nunit/issues/882","labels_url":"https://api.github.com/repos/nunit/nunit/issues/882/labels{/name}","comments_url":"https://api.github.com/repos/nunit/nunit/issues/882/comments","events_url":"https://api.github.com/repos/nunit/nunit/issues/882/events","html_url":"https://github.com/nunit/nunit/pull/882","id":110688149,"number":882,"title":"Publisher for TeamCity's service messages #669","user":{"login":"NikolayPianikov","id":11720017,"avatar_url":"https://avatars.githubusercontent.com/u/11720017?v=3","gravatar_id":"","url":"https://api.github.com/users/NikolayPianikov","html_url":"https://github.com/NikolayPianikov","followers_url":"https://api.github.com/users/NikolayPianikov/followers","following_url":"https://api.github.com/users/NikolayPianikov/following{/other_user}","gists_url":"https://api.github.com/users/NikolayPianikov/gists{/gist_id}","starred_url":"https://api.github.com/users/NikolayPianikov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/NikolayPianikov/subscriptions","organizations_url":"https://api.github.com/users/NikolayPianikov/orgs","repos_url":"https://api.github.com/users/NikolayPianikov/repos","events_url":"https://api.github.com/users/NikolayPianikov/events{/privacy}","received_events_url":"https://api.github.com/users/NikolayPianikov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-10-09T16:02:38Z","updated_at":"2015-10-15T18:18:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nunit/nunit/pulls/882","html_url":"https://github.com/nunit/nunit/pull/882","diff_url":"https://github.com/nunit/nunit/pull/882.diff","patch_url":"https://github.com/nunit/nunit/pull/882.patch"},"body":"See issue #669\r\n\r\nUsers complain: the test's results from NUnit 2 are no similar at the test's results from NUnit 3 in the TeamCity. Thus statistics and many other things have wrong data or view. I created the new class \"TeamCityServiceMessagePublisher\" to send TC service messages and added the small change to the xml for event between a console and agents by adding new attribute \"parentId\". It is useful in the cases when events are received from the parallelizable tests, otherwise it is impossible to understand the relation between tests and suites. I've extends the set of messages and now we are using testSuiteStarted, testSuiteFinished, flowStarted, flowFinished, testStdOut. See cases and tests in the class \"TeamCityServiceMessagePublisherTests\".  Also I have integration tests for this change. \r\n\r\nI tried to make a minimum of changes.\r\nIt is **very important** PR for us, could you review."},"comment":{"url":"https://api.github.com/repos/nunit/nunit/issues/comments/148478458","html_url":"https://github.com/nunit/nunit/pull/882#issuecomment-148478458","issue_url":"https://api.github.com/repos/nunit/nunit/issues/882","id":148478458,"user":{"login":"CharliePoole","id":2678661,"avatar_url":"https://avatars.githubusercontent.com/u/2678661?v=3","gravatar_id":"","url":"https://api.github.com/users/CharliePoole","html_url":"https://github.com/CharliePoole","followers_url":"https://api.github.com/users/CharliePoole/followers","following_url":"https://api.github.com/users/CharliePoole/following{/other_user}","gists_url":"https://api.github.com/users/CharliePoole/gists{/gist_id}","starred_url":"https://api.github.com/users/CharliePoole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CharliePoole/subscriptions","organizations_url":"https://api.github.com/users/CharliePoole/orgs","repos_url":"https://api.github.com/users/CharliePoole/repos","events_url":"https://api.github.com/users/CharliePoole/events{/privacy}","received_events_url":"https://api.github.com/users/CharliePoole/received_events","type":"User","site_admin":false},"created_at":"2015-10-15T18:18:32Z","updated_at":"2015-10-15T18:18:32Z","body":"If I understood everything correctly, then the flowid is only an artifact, which you use to construct the hierarchy on the fly. It seems like having the id of the parent is a much more explicit way of providing the same thing.\r\n\r\nThat is, with flowid, you can reason \"the parent of this test is the most recently received start-test using the same flowid.\" But with parentid, you don't have to reason at all, do you? As you receive start-test events, beginning with the root, you can directly construct a tree by adding the current-test as a child of the parent-id.\r\n\r\nCan we just forget about flowdid, or is it needed for some other purpose?"}}