{"action":"created","issue":{"url":"https://api.github.com/repos/junit-team/junit5/issues/1393","repository_url":"https://api.github.com/repos/junit-team/junit5","labels_url":"https://api.github.com/repos/junit-team/junit5/issues/1393/labels{/name}","comments_url":"https://api.github.com/repos/junit-team/junit5/issues/1393/comments","events_url":"https://api.github.com/repos/junit-team/junit5/issues/1393/events","html_url":"https://github.com/junit-team/junit5/pull/1393","id":317821669,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg0MTg1MjE1","number":1393,"title":"Introduce extension for processing test results","user":{"login":"geo-m","id":25904283,"node_id":"MDQ6VXNlcjI1OTA0Mjgz","avatar_url":"https://avatars1.githubusercontent.com/u/25904283?v=4","gravatar_id":"","url":"https://api.github.com/users/geo-m","html_url":"https://github.com/geo-m","followers_url":"https://api.github.com/users/geo-m/followers","following_url":"https://api.github.com/users/geo-m/following{/other_user}","gists_url":"https://api.github.com/users/geo-m/gists{/gist_id}","starred_url":"https://api.github.com/users/geo-m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geo-m/subscriptions","organizations_url":"https://api.github.com/users/geo-m/orgs","repos_url":"https://api.github.com/users/geo-m/repos","events_url":"https://api.github.com/users/geo-m/events{/privacy}","received_events_url":"https://api.github.com/users/geo-m/received_events","type":"User","site_admin":false},"labels":[{"id":420911923,"node_id":"MDU6TGFiZWw0MjA5MTE5MjM=","url":"https://api.github.com/repos/junit-team/junit5/labels/component:%20Jupiter","name":"component: Jupiter","color":"11ee99","default":false},{"id":420912036,"node_id":"MDU6TGFiZWw0MjA5MTIwMzY=","url":"https://api.github.com/repos/junit-team/junit5/labels/component:%20Platform","name":"component: Platform","color":"11dd99","default":false},{"id":294412858,"node_id":"MDU6TGFiZWwyOTQ0MTI4NTg=","url":"https://api.github.com/repos/junit-team/junit5/labels/status:%20in%20progress","name":"status: in progress","color":"ffbb00","default":false},{"id":289029959,"node_id":"MDU6TGFiZWwyODkwMjk5NTk=","url":"https://api.github.com/repos/junit-team/junit5/labels/theme:%20extensions","name":"theme: extensions","color":"c7def8","default":false},{"id":165165180,"node_id":"MDU6TGFiZWwxNjUxNjUxODA=","url":"https://api.github.com/repos/junit-team/junit5/labels/type:%20enhancement","name":"type: enhancement","color":"84b6eb","default":false}],"state":"open","locked":false,"assignee":{"login":"geo-m","id":25904283,"node_id":"MDQ6VXNlcjI1OTA0Mjgz","avatar_url":"https://avatars1.githubusercontent.com/u/25904283?v=4","gravatar_id":"","url":"https://api.github.com/users/geo-m","html_url":"https://github.com/geo-m","followers_url":"https://api.github.com/users/geo-m/followers","following_url":"https://api.github.com/users/geo-m/following{/other_user}","gists_url":"https://api.github.com/users/geo-m/gists{/gist_id}","starred_url":"https://api.github.com/users/geo-m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geo-m/subscriptions","organizations_url":"https://api.github.com/users/geo-m/orgs","repos_url":"https://api.github.com/users/geo-m/repos","events_url":"https://api.github.com/users/geo-m/events{/privacy}","received_events_url":"https://api.github.com/users/geo-m/received_events","type":"User","site_admin":false},"assignees":[{"login":"geo-m","id":25904283,"node_id":"MDQ6VXNlcjI1OTA0Mjgz","avatar_url":"https://avatars1.githubusercontent.com/u/25904283?v=4","gravatar_id":"","url":"https://api.github.com/users/geo-m","html_url":"https://github.com/geo-m","followers_url":"https://api.github.com/users/geo-m/followers","following_url":"https://api.github.com/users/geo-m/following{/other_user}","gists_url":"https://api.github.com/users/geo-m/gists{/gist_id}","starred_url":"https://api.github.com/users/geo-m/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geo-m/subscriptions","organizations_url":"https://api.github.com/users/geo-m/orgs","repos_url":"https://api.github.com/users/geo-m/repos","events_url":"https://api.github.com/users/geo-m/events{/privacy}","received_events_url":"https://api.github.com/users/geo-m/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/junit-team/junit5/milestones/27","html_url":"https://github.com/junit-team/junit5/milestone/27","labels_url":"https://api.github.com/repos/junit-team/junit5/milestones/27/labels","id":3427464,"node_id":"MDk6TWlsZXN0b25lMzQyNzQ2NA==","number":27,"title":"5.3 RC1","description":"Collecting issues not tackled in 5.3 M1","creator":{"login":"sormuras","id":2319838,"node_id":"MDQ6VXNlcjIzMTk4Mzg=","avatar_url":"https://avatars1.githubusercontent.com/u/2319838?v=4","gravatar_id":"","url":"https://api.github.com/users/sormuras","html_url":"https://github.com/sormuras","followers_url":"https://api.github.com/users/sormuras/followers","following_url":"https://api.github.com/users/sormuras/following{/other_user}","gists_url":"https://api.github.com/users/sormuras/gists{/gist_id}","starred_url":"https://api.github.com/users/sormuras/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sormuras/subscriptions","organizations_url":"https://api.github.com/users/sormuras/orgs","repos_url":"https://api.github.com/users/sormuras/repos","events_url":"https://api.github.com/users/sormuras/events{/privacy}","received_events_url":"https://api.github.com/users/sormuras/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":12,"state":"open","created_at":"2018-06-15T10:22:15Z","updated_at":"2018-07-06T16:06:32Z","due_on":"2018-07-31T07:00:00Z","closed_at":null},"comments":3,"created_at":"2018-04-25T22:55:57Z","updated_at":"2018-07-07T11:11:47Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/junit-team/junit5/pulls/1393","html_url":"https://github.com/junit-team/junit5/pull/1393","diff_url":"https://github.com/junit-team/junit5/pull/1393.diff","patch_url":"https://github.com/junit-team/junit5/pull/1393.patch"},"body":"## Overview\r\n\r\nDraft implementation of a testwatcher-like extension point for discussion, with a sample extension and a testcase. Only extends tests methods so far.\r\n\r\nI am currently considering these points, and would like feedback from Junit Team: \r\n\r\n- Whether this is the correct info to be finally passed to extension methods. E.g an alternative of the method identifier string is using a `TestIdentifier` object but that will require a new dependency.\r\n- Whether the node notification should be moved before `cleanup()` in order to avoid operating on a closed `ExtensionContext`. I am not aware of the full consequences of doing this (tests show no change).\r\n\r\nReasons for current code placement in `Node` instead of Jupiter engine / another class.\r\n\r\n- Engine agnostic point which other engines can use for node type specific result actions.\r\n- Has direct no-workaround access to both the extension registry and the test result for Jupiter.\r\n- Default interface method does not affect any existing code.\r\n- Failure of a result post processing method does not affect the already registered result.\r\n\r\nThe code causes a single test to fail which ensures no interactions at specific points, so **the build fails** for now.\r\n\r\nIssue: #542\r\n\r\n---\r\n\r\nI hereby agree to the terms of the [JUnit Contributor License Agreement](https://github.com/junit-team/junit5/blob/master/CONTRIBUTING.md#junit-contributor-license-agreement).\r\n\r\n---\r\n\r\n### Definition of Done\r\n\r\n- [ ] There are no TODOs left in the code\r\n- [ ] Method [preconditions](http://junit.org/junit5/docs/snapshot/api/org/junit/platform/commons/util/Preconditions.html) are checked and documented in the method's Javadoc\r\n- [ ] [Coding conventions](https://github.com/junit-team/junit5/blob/master/CONTRIBUTING.md#coding-conventions) (e.g. for logging) have been followed\r\n- [ ] Change is covered by [automated tests](https://github.com/junit-team/junit5/blob/master/CONTRIBUTING.md#tests)\r\n- [ ] Public API has [Javadoc](https://github.com/junit-team/junit5/blob/master/CONTRIBUTING.md#javadoc) and [`@API` annotations](http://junit.org/junit5/docs/snapshot/api/org/junit/platform/commons/meta/API.html)\r\n- [ ] Change is documented in the [User Guide](http://junit.org/junit5/docs/snapshot/user-guide/) and [Release Notes](http://junit.org/junit5/docs/snapshot/user-guide/#release-notes)\r\n- [ ] All [continuous integration builds](https://github.com/junit-team/junit5#continuous-integration-builds) pass\r\n"},"comment":{"url":"https://api.github.com/repos/junit-team/junit5/issues/comments/403208092","html_url":"https://github.com/junit-team/junit5/pull/1393#issuecomment-403208092","issue_url":"https://api.github.com/repos/junit-team/junit5/issues/1393","id":403208092,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMzIwODA5Mg==","user":{"login":"sbrannen","id":104798,"node_id":"MDQ6VXNlcjEwNDc5OA==","avatar_url":"https://avatars0.githubusercontent.com/u/104798?v=4","gravatar_id":"","url":"https://api.github.com/users/sbrannen","html_url":"https://github.com/sbrannen","followers_url":"https://api.github.com/users/sbrannen/followers","following_url":"https://api.github.com/users/sbrannen/following{/other_user}","gists_url":"https://api.github.com/users/sbrannen/gists{/gist_id}","starred_url":"https://api.github.com/users/sbrannen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sbrannen/subscriptions","organizations_url":"https://api.github.com/users/sbrannen/orgs","repos_url":"https://api.github.com/users/sbrannen/repos","events_url":"https://api.github.com/users/sbrannen/events{/privacy}","received_events_url":"https://api.github.com/users/sbrannen/received_events","type":"User","site_admin":false},"created_at":"2018-07-07T11:11:47Z","updated_at":"2018-07-07T11:11:47Z","author_association":"MEMBER","body":"@geo-m, to address your feedback request:\r\n\r\n> - Whether this is the correct info to be finally passed to extension methods. E.g an alternative of the method identifier string is using a `TestIdentifier` object but that will require a new dependency.\r\n\r\n@marcphilipp and I have voiced our desire to omit an additional, custom identifier from this extension API. See review comments for details.\r\n\r\n> - Whether the node notification should be moved before `cleanup()` in order to avoid operating on a closed `ExtensionContext`. I am not aware of the full consequences of doing this (tests show no change).\r\n\r\nThat's a good question.\r\n\r\nThe way you've done it now it by far the easiest way to do it, since you do it alongside events for Platform `TestExecutionListener`s.\r\n\r\nHowever, if a `TestWatcher` event/callback method is invoked after `cleanUp()` is invoked, that means that any `CloseableResource` that is stored in the `ExtensionContext.Store` will already have been closed. \r\n\r\nSo... if a `TestWatcher` needs to interact with a `CloseableResource`, that interaction could potentially fail.\r\n\r\nNote, however, that the contents of the `Store` are not actually cleared in `cleanUp()`, so interaction with objects in the `Store` that do not implement `CloseableResource` should be fine."}}
{"actor":{"display_login":"sbrannen"}}