{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/test/issues/376","labels_url":"https://api.github.com/repos/dart-lang/test/issues/376/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/test/issues/376/comments","events_url":"https://api.github.com/repos/dart-lang/test/issues/376/events","html_url":"https://github.com/dart-lang/test/issues/376","id":122327876,"number":376,"title":"No loading events for dependent test files","user":{"login":"stevemessick","id":8518285,"avatar_url":"https://avatars.githubusercontent.com/u/8518285?v=3","gravatar_id":"","url":"https://api.github.com/users/stevemessick","html_url":"https://github.com/stevemessick","followers_url":"https://api.github.com/users/stevemessick/followers","following_url":"https://api.github.com/users/stevemessick/following{/other_user}","gists_url":"https://api.github.com/users/stevemessick/gists{/gist_id}","starred_url":"https://api.github.com/users/stevemessick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevemessick/subscriptions","organizations_url":"https://api.github.com/users/stevemessick/orgs","repos_url":"https://api.github.com/users/stevemessick/repos","events_url":"https://api.github.com/users/stevemessick/events{/privacy}","received_events_url":"https://api.github.com/users/stevemessick/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/test/labels/as%20designed","name":"as designed","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-15T17:49:04Z","updated_at":"2015-12-17T17:45:19Z","closed_at":null,"body":"Consider quiver-dart. It has a *test/all_tests.dart* file that runs all tests.\r\n```dart\r\nlibrary quiver.all_tests;\r\n\r\nimport 'async/all_tests.dart' as async;\r\nimport 'cache/map_cache_test.dart' as cache;\r\nimport 'check_test.dart' as check;\r\nimport 'collection/all_tests.dart' as collection;\r\nimport 'core/all_tests.dart' as core;\r\nimport 'io_test.dart' as io;\r\nimport 'iterables/all_tests.dart' as iterables;\r\nimport 'mirrors_test.dart' as mirrors;\r\nimport 'pattern/all_tests.dart' as pattern;\r\nimport 'strings_test.dart' as strings;\r\nimport 'testing/all_tests.dart' as testing;\r\nimport 'time/all_tests.dart' as time;\r\n\r\nmain() {\r\n  async.main();\r\n  cache.main();\r\n  check.main();\r\n  collection.main();\r\n  core.main();\r\n  io.main();\r\n  iterables.main();\r\n  mirrors.main();\r\n  pattern.main();\r\n  strings.main();\r\n  testing.main();\r\n  time.main();\r\n}\r\n```\r\nIntelliJ receives only one loading event, for *all_tests.dart*, which is clearly not useful for any practical purpose. It needs loading events for each file to support navigation from test results to test source code.\r\n"},"comment":{"url":"https://api.github.com/repos/dart-lang/test/issues/comments/165525701","html_url":"https://github.com/dart-lang/test/issues/376#issuecomment-165525701","issue_url":"https://api.github.com/repos/dart-lang/test/issues/376","id":165525701,"user":{"login":"stevemessick","id":8518285,"avatar_url":"https://avatars.githubusercontent.com/u/8518285?v=3","gravatar_id":"","url":"https://api.github.com/users/stevemessick","html_url":"https://github.com/stevemessick","followers_url":"https://api.github.com/users/stevemessick/followers","following_url":"https://api.github.com/users/stevemessick/following{/other_user}","gists_url":"https://api.github.com/users/stevemessick/gists{/gist_id}","starred_url":"https://api.github.com/users/stevemessick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevemessick/subscriptions","organizations_url":"https://api.github.com/users/stevemessick/orgs","repos_url":"https://api.github.com/users/stevemessick/repos","events_url":"https://api.github.com/users/stevemessick/events{/privacy}","received_events_url":"https://api.github.com/users/stevemessick/received_events","type":"User","site_admin":false},"created_at":"2015-12-17T17:45:19Z","updated_at":"2015-12-17T17:45:19Z","body":"(Accidentally submitted the comment before I was finished.)\r\nLet's consider a specific test. There is a test named \"should add indices to its argument\" that is in group \"enumerate\" that is defined in enumerate_test.dart. In this case, it is the first user-defined test to run, with test event id=1. We get a test event with id=4 when that file is loaded. You'll see that it is the sixth of eight sequential loading events. Test id=10 has parents with id=9 and id=8. Those identify group events. Group id=9 is the \"enumerate\" event, and its parent is id=8. Group id=8 is the synthetic group for the file. It has no parent. The test id=4 event has no children, so there is no way to tell that this specific test is in the file enumerate_test.dart.\r\n\r\nNow imagine that this specific test fails. The IntelliJ UI shows the test clearly, with red icon, as failing. Users (of many tools, not just IntelliJ) expect to click something that stands out and be provided with more information. In this case, JetBrains has trained its customers to expect the \"more information\" to be provided by jumping to the source code in the editor. That's what we need to implement."}}