{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/buildtools/pulls/comments/26550653","id":26550653,"diff_hunk":"@@ -48,10 +49,20 @@\n     <DebugEngines>{2E36F1D4-B23C-435D-AB41-18E608940038}</DebugEngines>\n   </PropertyGroup>\n \n+  <ItemGroup>\n+    <TestTargetFrameworkPath Include=\"$(TestPath)%(TestTargetFramework.Folder)\"/>","path":"src/Microsoft.DotNet.Build.Tasks/Targets/tests.targets","position":16,"original_position":16,"commit_id":"d9d3a7f25a25b99f7a872d255a4a1a3c0d6d7c8f","original_commit_id":"d9d3a7f25a25b99f7a872d255a4a1a3c0d6d7c8f","user":{"login":"eatdrinksleepcode","id":2099560,"avatar_url":"https://avatars.githubusercontent.com/u/2099560?v=3","gravatar_id":"","url":"https://api.github.com/users/eatdrinksleepcode","html_url":"https://github.com/eatdrinksleepcode","followers_url":"https://api.github.com/users/eatdrinksleepcode/followers","following_url":"https://api.github.com/users/eatdrinksleepcode/following{/other_user}","gists_url":"https://api.github.com/users/eatdrinksleepcode/gists{/gist_id}","starred_url":"https://api.github.com/users/eatdrinksleepcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatdrinksleepcode/subscriptions","organizations_url":"https://api.github.com/users/eatdrinksleepcode/orgs","repos_url":"https://api.github.com/users/eatdrinksleepcode/repos","events_url":"https://api.github.com/users/eatdrinksleepcode/events{/privacy}","received_events_url":"https://api.github.com/users/eatdrinksleepcode/received_events","type":"User","site_admin":false},"body":"I will take another shot at this while maintaining the batching.\r\n\r\nHow would the multiple target frameworks be expressed? Multiple Folder nodes under the TestTargetFramework item? Or multiple TestTargetFramework items?","created_at":"2015-03-17T05:41:37Z","updated_at":"2015-03-17T05:41:37Z","html_url":"https://github.com/dotnet/buildtools/pull/116#discussion_r26550653","pull_request_url":"https://api.github.com/repos/dotnet/buildtools/pulls/116","_links":{"self":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/comments/26550653"},"html":{"href":"https://github.com/dotnet/buildtools/pull/116#discussion_r26550653"},"pull_request":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/116"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/buildtools/pulls/116","id":31196126,"html_url":"https://github.com/dotnet/buildtools/pull/116","diff_url":"https://github.com/dotnet/buildtools/pull/116.diff","patch_url":"https://github.com/dotnet/buildtools/pull/116.patch","issue_url":"https://api.github.com/repos/dotnet/buildtools/issues/116","number":116,"state":"open","locked":false,"title":"Only run tests (and copy test files) if test results are out of date","user":{"login":"eatdrinksleepcode","id":2099560,"avatar_url":"https://avatars.githubusercontent.com/u/2099560?v=3","gravatar_id":"","url":"https://api.github.com/users/eatdrinksleepcode","html_url":"https://github.com/eatdrinksleepcode","followers_url":"https://api.github.com/users/eatdrinksleepcode/followers","following_url":"https://api.github.com/users/eatdrinksleepcode/following{/other_user}","gists_url":"https://api.github.com/users/eatdrinksleepcode/gists{/gist_id}","starred_url":"https://api.github.com/users/eatdrinksleepcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatdrinksleepcode/subscriptions","organizations_url":"https://api.github.com/users/eatdrinksleepcode/orgs","repos_url":"https://api.github.com/users/eatdrinksleepcode/repos","events_url":"https://api.github.com/users/eatdrinksleepcode/events{/privacy}","received_events_url":"https://api.github.com/users/eatdrinksleepcode/received_events","type":"User","site_admin":false},"body":"Fixes #60 \r\n\r\nUses a marker file and Inputs/Outputs on the RunTestsForProject target to skip running tests when nothing has changed since the last successful test run. Also moves copying of the test files into the RunTestsForProject target so that they are only copied if the tests are going to run.\r\n\r\nOn my machine, this change cuts the build time for CoreFX for an incremental build with no changes from 45-55 seconds to 5 seconds*.","created_at":"2015-03-15T06:18:07Z","updated_at":"2015-03-17T05:41:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b98776af798b63386f1acb338990767f5717e97","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/buildtools/pulls/116/commits","review_comments_url":"https://api.github.com/repos/dotnet/buildtools/pulls/116/comments","review_comment_url":"https://api.github.com/repos/dotnet/buildtools/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/buildtools/issues/116/comments","statuses_url":"https://api.github.com/repos/dotnet/buildtools/statuses/d9d3a7f25a25b99f7a872d255a4a1a3c0d6d7c8f","head":{"label":"eatdrinksleepcode:dotnet#60","ref":"dotnet#60","sha":"d9d3a7f25a25b99f7a872d255a4a1a3c0d6d7c8f","user":{"login":"eatdrinksleepcode","id":2099560,"avatar_url":"https://avatars.githubusercontent.com/u/2099560?v=3","gravatar_id":"","url":"https://api.github.com/users/eatdrinksleepcode","html_url":"https://github.com/eatdrinksleepcode","followers_url":"https://api.github.com/users/eatdrinksleepcode/followers","following_url":"https://api.github.com/users/eatdrinksleepcode/following{/other_user}","gists_url":"https://api.github.com/users/eatdrinksleepcode/gists{/gist_id}","starred_url":"https://api.github.com/users/eatdrinksleepcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatdrinksleepcode/subscriptions","organizations_url":"https://api.github.com/users/eatdrinksleepcode/orgs","repos_url":"https://api.github.com/users/eatdrinksleepcode/repos","events_url":"https://api.github.com/users/eatdrinksleepcode/events{/privacy}","received_events_url":"https://api.github.com/users/eatdrinksleepcode/received_events","type":"User","site_admin":false},"repo":{"id":32136655,"name":"buildtools","full_name":"eatdrinksleepcode/buildtools","owner":{"login":"eatdrinksleepcode","id":2099560,"avatar_url":"https://avatars.githubusercontent.com/u/2099560?v=3","gravatar_id":"","url":"https://api.github.com/users/eatdrinksleepcode","html_url":"https://github.com/eatdrinksleepcode","followers_url":"https://api.github.com/users/eatdrinksleepcode/followers","following_url":"https://api.github.com/users/eatdrinksleepcode/following{/other_user}","gists_url":"https://api.github.com/users/eatdrinksleepcode/gists{/gist_id}","starred_url":"https://api.github.com/users/eatdrinksleepcode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatdrinksleepcode/subscriptions","organizations_url":"https://api.github.com/users/eatdrinksleepcode/orgs","repos_url":"https://api.github.com/users/eatdrinksleepcode/repos","events_url":"https://api.github.com/users/eatdrinksleepcode/events{/privacy}","received_events_url":"https://api.github.com/users/eatdrinksleepcode/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/eatdrinksleepcode/buildtools","description":"Build tools that are necessary for building the .NET Core projects","fork":true,"url":"https://api.github.com/repos/eatdrinksleepcode/buildtools","forks_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/forks","keys_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/teams","hooks_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/hooks","issue_events_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/issues/events{/number}","events_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/events","assignees_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/assignees{/user}","branches_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/branches{/branch}","tags_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/tags","blobs_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/statuses/{sha}","languages_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/languages","stargazers_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/stargazers","contributors_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/contributors","subscribers_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/subscribers","subscription_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/subscription","commits_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/contents/{+path}","compare_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/merges","archive_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/downloads","issues_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/issues{/number}","pulls_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/pulls{/number}","milestones_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/milestones{/number}","notifications_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/labels{/name}","releases_url":"https://api.github.com/repos/eatdrinksleepcode/buildtools/releases{/id}","created_at":"2015-03-13T06:55:03Z","updated_at":"2015-03-13T06:55:03Z","pushed_at":"2015-03-15T19:58:07Z","git_url":"git://github.com/eatdrinksleepcode/buildtools.git","ssh_url":"git@github.com:eatdrinksleepcode/buildtools.git","clone_url":"https://github.com/eatdrinksleepcode/buildtools.git","svn_url":"https://github.com/eatdrinksleepcode/buildtools","homepage":"","size":1936,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"b748889166987caf6631383e5f3e13e59ae71980","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295349,"name":"buildtools","full_name":"dotnet/buildtools","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/buildtools","description":"Build tools that are necessary for building the .NET Core projects","fork":false,"url":"https://api.github.com/repos/dotnet/buildtools","forks_url":"https://api.github.com/repos/dotnet/buildtools/forks","keys_url":"https://api.github.com/repos/dotnet/buildtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/buildtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/buildtools/teams","hooks_url":"https://api.github.com/repos/dotnet/buildtools/hooks","issue_events_url":"https://api.github.com/repos/dotnet/buildtools/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/buildtools/events","assignees_url":"https://api.github.com/repos/dotnet/buildtools/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/buildtools/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/buildtools/tags","blobs_url":"https://api.github.com/repos/dotnet/buildtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/buildtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/buildtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/buildtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/buildtools/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/buildtools/languages","stargazers_url":"https://api.github.com/repos/dotnet/buildtools/stargazers","contributors_url":"https://api.github.com/repos/dotnet/buildtools/contributors","subscribers_url":"https://api.github.com/repos/dotnet/buildtools/subscribers","subscription_url":"https://api.github.com/repos/dotnet/buildtools/subscription","commits_url":"https://api.github.com/repos/dotnet/buildtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/buildtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/buildtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/buildtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/buildtools/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/buildtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/buildtools/merges","archive_url":"https://api.github.com/repos/dotnet/buildtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/buildtools/downloads","issues_url":"https://api.github.com/repos/dotnet/buildtools/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/buildtools/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/buildtools/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/buildtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/buildtools/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/buildtools/releases{/id}","created_at":"2014-11-06T23:43:05Z","updated_at":"2015-03-16T16:45:41Z","pushed_at":"2015-03-16T16:45:41Z","git_url":"git://github.com/dotnet/buildtools.git","ssh_url":"git@github.com:dotnet/buildtools.git","clone_url":"https://github.com/dotnet/buildtools.git","svn_url":"https://github.com/dotnet/buildtools","homepage":"","size":1936,"stargazers_count":322,"watchers_count":322,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":117,"mirror_url":null,"open_issues_count":8,"forks":117,"open_issues":8,"watchers":322,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/116"},"html":{"href":"https://github.com/dotnet/buildtools/pull/116"},"issue":{"href":"https://api.github.com/repos/dotnet/buildtools/issues/116"},"comments":{"href":"https://api.github.com/repos/dotnet/buildtools/issues/116/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/116/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/116/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/buildtools/statuses/d9d3a7f25a25b99f7a872d255a4a1a3c0d6d7c8f"}}}}