{"action":"created","issue":{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/278","repository_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics","labels_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/278/labels{/name}","comments_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/278/comments","events_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/278/events","html_url":"https://github.com/VSDiagnostics/VSDiagnostics/issues/278","id":112545673,"number":278,"title":"Implement TestMethodWithoutTestAttribute","user":{"login":"Vannevelj","id":2777107,"avatar_url":"https://avatars.githubusercontent.com/u/2777107?v=3","gravatar_id":"","url":"https://api.github.com/users/Vannevelj","html_url":"https://github.com/Vannevelj","followers_url":"https://api.github.com/users/Vannevelj/followers","following_url":"https://api.github.com/users/Vannevelj/following{/other_user}","gists_url":"https://api.github.com/users/Vannevelj/gists{/gist_id}","starred_url":"https://api.github.com/users/Vannevelj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vannevelj/subscriptions","organizations_url":"https://api.github.com/users/Vannevelj/orgs","repos_url":"https://api.github.com/users/Vannevelj/repos","events_url":"https://api.github.com/users/Vannevelj/events{/privacy}","received_events_url":"https://api.github.com/users/Vannevelj/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/labels/priority%20-%20medium","name":"priority - medium","color":"fbca04"},{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/labels/type%20-%20discussion","name":"type - discussion","color":"bfd4f2"},{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/labels/type%20-%20feature","name":"type - feature","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/milestones/8","html_url":"https://github.com/VSDiagnostics/VSDiagnostics/milestones/v2.0.0","labels_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/milestones/8/labels","id":1242884,"number":8,"title":"v2.0.0","description":"","creator":{"login":"Vannevelj","id":2777107,"avatar_url":"https://avatars.githubusercontent.com/u/2777107?v=3","gravatar_id":"","url":"https://api.github.com/users/Vannevelj","html_url":"https://github.com/Vannevelj","followers_url":"https://api.github.com/users/Vannevelj/followers","following_url":"https://api.github.com/users/Vannevelj/following{/other_user}","gists_url":"https://api.github.com/users/Vannevelj/gists{/gist_id}","starred_url":"https://api.github.com/users/Vannevelj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vannevelj/subscriptions","organizations_url":"https://api.github.com/users/Vannevelj/orgs","repos_url":"https://api.github.com/users/Vannevelj/repos","events_url":"https://api.github.com/users/Vannevelj/events{/privacy}","received_events_url":"https://api.github.com/users/Vannevelj/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":32,"state":"open","created_at":"2015-08-05T22:01:29Z","updated_at":"2016-04-30T11:38:16Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-10-21T09:21:15Z","updated_at":"2016-05-01T00:17:52Z","closed_at":null,"body":"Certain testing frameworks require the testing class to have an attribute (like `[TestClass]`). For these classes we can display a warning when there is a `public` method in it without the appropriate testing attribute. Helper methods should be private anyway.\r\n\r\nOne scenario I can think of however is a nested class with public members to get/calculate/whatever some testing data. Maybe we can look for assertions in the method body? I don't think we can ignore nested classes outright since I've seen people group tests that way."},"comment":{"url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/comments/216004398","html_url":"https://github.com/VSDiagnostics/VSDiagnostics/issues/278#issuecomment-216004398","issue_url":"https://api.github.com/repos/VSDiagnostics/VSDiagnostics/issues/278","id":216004398,"user":{"login":"Vannevelj","id":2777107,"avatar_url":"https://avatars.githubusercontent.com/u/2777107?v=3","gravatar_id":"","url":"https://api.github.com/users/Vannevelj","html_url":"https://github.com/Vannevelj","followers_url":"https://api.github.com/users/Vannevelj/followers","following_url":"https://api.github.com/users/Vannevelj/following{/other_user}","gists_url":"https://api.github.com/users/Vannevelj/gists{/gist_id}","starred_url":"https://api.github.com/users/Vannevelj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vannevelj/subscriptions","organizations_url":"https://api.github.com/users/Vannevelj/orgs","repos_url":"https://api.github.com/users/Vannevelj/repos","events_url":"https://api.github.com/users/Vannevelj/events{/privacy}","received_events_url":"https://api.github.com/users/Vannevelj/received_events","type":"User","site_admin":false},"created_at":"2016-05-01T00:17:52Z","updated_at":"2016-05-01T00:17:52Z","body":"No, we can't rely on either of these things. There are fluent APIs and async tests (that use `Task` return type) which would cause too many false alarms. What we could do is exclude all public methods that either have a non-`Task`/`Task<T>` return type or that have a known attribute like `[SetupMethod]`."}}