{"action":"created","issue":{"url":"https://api.github.com/repos/idaholab/moose/issues/4489","labels_url":"https://api.github.com/repos/idaholab/moose/issues/4489/labels{/name}","comments_url":"https://api.github.com/repos/idaholab/moose/issues/4489/comments","events_url":"https://api.github.com/repos/idaholab/moose/issues/4489/events","html_url":"https://github.com/idaholab/moose/issues/4489","id":53563501,"number":4489,"title":"Consolidate Test suite C++ code/create `templates` directory","user":{"login":"jwpeterson","id":1775907,"avatar_url":"https://avatars.githubusercontent.com/u/1775907?v=3","gravatar_id":"","url":"https://api.github.com/users/jwpeterson","html_url":"https://github.com/jwpeterson","followers_url":"https://api.github.com/users/jwpeterson/followers","following_url":"https://api.github.com/users/jwpeterson/following{/other_user}","gists_url":"https://api.github.com/users/jwpeterson/gists{/gist_id}","starred_url":"https://api.github.com/users/jwpeterson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwpeterson/subscriptions","organizations_url":"https://api.github.com/users/jwpeterson/orgs","repos_url":"https://api.github.com/users/jwpeterson/repos","events_url":"https://api.github.com/users/jwpeterson/events{/privacy}","received_events_url":"https://api.github.com/users/jwpeterson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/idaholab/moose/labels/C%3A+MOOSE","name":"C: MOOSE","color":"0052cc"},{"url":"https://api.github.com/repos/idaholab/moose/labels/P%3A+normal","name":"P: normal","color":"ededed"},{"url":"https://api.github.com/repos/idaholab/moose/labels/T%3A+task","name":"T: task","color":"cccccc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-06T21:08:46Z","updated_at":"2015-01-08T14:57:36Z","closed_at":null,"body":"The discussion for this started in PR #4469.  Basically, @permcody pointed out that we are getting a lot of source code in test/src and test/include, some of which is performing very simple tasks or is just redundant.  So this issue is mainly to come up with a design that consolidates some of the test code, if possible.\r\n\r\nAs a side issue, @jwpeterson noted that it is sometimes nice to be able to copy/paste code from the tests directory when starting something new, but it will be more awkward to do this if the testing source code gets consolidated.  So it might be worth having a \"templates\" directory with a template Material, Kernel, etc. in there for people to copy paste from that would also be run as tests to ensure they were kept up-to-date."},"comment":{"url":"https://api.github.com/repos/idaholab/moose/issues/comments/69189930","html_url":"https://github.com/idaholab/moose/issues/4489#issuecomment-69189930","issue_url":"https://api.github.com/repos/idaholab/moose/issues/4489","id":69189930,"user":{"login":"aeslaughter","id":341333,"avatar_url":"https://avatars.githubusercontent.com/u/341333?v=3","gravatar_id":"","url":"https://api.github.com/users/aeslaughter","html_url":"https://github.com/aeslaughter","followers_url":"https://api.github.com/users/aeslaughter/followers","following_url":"https://api.github.com/users/aeslaughter/following{/other_user}","gists_url":"https://api.github.com/users/aeslaughter/gists{/gist_id}","starred_url":"https://api.github.com/users/aeslaughter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aeslaughter/subscriptions","organizations_url":"https://api.github.com/users/aeslaughter/orgs","repos_url":"https://api.github.com/users/aeslaughter/repos","events_url":"https://api.github.com/users/aeslaughter/events{/privacy}","received_events_url":"https://api.github.com/users/aeslaughter/received_events","type":"User","site_admin":false},"created_at":"2015-01-08T14:57:36Z","updated_at":"2015-01-08T14:57:36Z","body":"I think I am on board with creating a test object for each object type (Kernel, etc.), but we need to come up with a common scheme for triggering the different tests. In the few objects I have made I have a MooseEnum parameter, \"test_type\", that changes the behavior. I would want this to be consistent through all the objects, perhaps we need a simple TestObject base class to bring in this parameter consistently.\r\n\r\n:+1: on the templates directory, I think this is a great idea. It then would be super easy to even make a little helper script to rename the file and class names for building a new object, something I already do. For example,\r\n```\r\nmoose_object Kernel MyCrazyKernel\r\n```"}}