{"action":"created","issue":{"url":"https://api.github.com/repos/nunit/nunit/issues/460","labels_url":"https://api.github.com/repos/nunit/nunit/issues/460/labels{/name}","comments_url":"https://api.github.com/repos/nunit/nunit/issues/460/comments","events_url":"https://api.github.com/repos/nunit/nunit/issues/460/events","html_url":"https://github.com/nunit/nunit/issues/460","id":54403018,"number":460,"title":"Portable version of NunitLite shouldn't reference System.Windows","user":{"login":"cwensley","id":367446,"avatar_url":"https://avatars.githubusercontent.com/u/367446?v=3","gravatar_id":"","url":"https://api.github.com/users/cwensley","html_url":"https://github.com/cwensley","followers_url":"https://api.github.com/users/cwensley/followers","following_url":"https://api.github.com/users/cwensley/following{/other_user}","gists_url":"https://api.github.com/users/cwensley/gists{/gist_id}","starred_url":"https://api.github.com/users/cwensley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cwensley/subscriptions","organizations_url":"https://api.github.com/users/cwensley/orgs","repos_url":"https://api.github.com/users/cwensley/repos","events_url":"https://api.github.com/users/cwensley/events{/privacy}","received_events_url":"https://api.github.com/users/cwensley/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nunit/nunit/labels/3.0","name":"3.0","color":"fef2c0"},{"url":"https://api.github.com/repos/nunit/nunit/labels/is%3Afeature","name":"is:feature","color":"009800"},{"url":"https://api.github.com/repos/nunit/nunit/labels/pri%3Ahigh","name":"pri:high","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/nunit/nunit/milestones/1","labels_url":"https://api.github.com/repos/nunit/nunit/milestones/1/labels","id":584685,"number":1,"title":"3.0","description":"Final release of NUnit 3.0. Issues assigned to this milestone are those that are intended to be part of NUnit 3.0 but which can be finished during the beta period.","creator":{"login":"CharliePoole","id":2678661,"avatar_url":"https://avatars.githubusercontent.com/u/2678661?v=3","gravatar_id":"","url":"https://api.github.com/users/CharliePoole","html_url":"https://github.com/CharliePoole","followers_url":"https://api.github.com/users/CharliePoole/followers","following_url":"https://api.github.com/users/CharliePoole/following{/other_user}","gists_url":"https://api.github.com/users/CharliePoole/gists{/gist_id}","starred_url":"https://api.github.com/users/CharliePoole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CharliePoole/subscriptions","organizations_url":"https://api.github.com/users/CharliePoole/orgs","repos_url":"https://api.github.com/users/CharliePoole/repos","events_url":"https://api.github.com/users/CharliePoole/events{/privacy}","received_events_url":"https://api.github.com/users/CharliePoole/received_events","type":"User","site_admin":false},"open_issues":19,"closed_issues":0,"state":"open","created_at":"2014-03-02T02:31:46Z","updated_at":"2015-01-16T02:35:05Z","due_on":"2015-02-28T08:00:00Z","closed_at":null},"comments":4,"created_at":"2015-01-15T01:51:49Z","updated_at":"2015-01-16T22:45:43Z","closed_at":null,"body":"The PCL version of NUnitLite (in 3.0 alpha 3 from nuget) currently references System.Windows.dll, and includes the Silverlight TestPage runner.  This should be removed to provide a truly portable runner that can be used for all platforms, including Xamarin."},"comment":{"url":"https://api.github.com/repos/nunit/nunit/issues/comments/70335064","html_url":"https://github.com/nunit/nunit/issues/460#issuecomment-70335064","issue_url":"https://api.github.com/repos/nunit/nunit/issues/460","id":70335064,"user":{"login":"cwensley","id":367446,"avatar_url":"https://avatars.githubusercontent.com/u/367446?v=3","gravatar_id":"","url":"https://api.github.com/users/cwensley","html_url":"https://github.com/cwensley","followers_url":"https://api.github.com/users/cwensley/followers","following_url":"https://api.github.com/users/cwensley/following{/other_user}","gists_url":"https://api.github.com/users/cwensley/gists{/gist_id}","starred_url":"https://api.github.com/users/cwensley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cwensley/subscriptions","organizations_url":"https://api.github.com/users/cwensley/orgs","repos_url":"https://api.github.com/users/cwensley/repos","events_url":"https://api.github.com/users/cwensley/events{/privacy}","received_events_url":"https://api.github.com/users/cwensley/received_events","type":"User","site_admin":false},"created_at":"2015-01-16T22:45:43Z","updated_at":"2015-01-16T22:45:43Z","body":"The idea is to be able to use the API to write your own custom runner without having platform-specific stuff get in the way.. e.g.\r\n\r\n```C#\r\nvar builder = new DefaultTestAssemblyBuilder();\r\n// use builder to show custom UI\r\nvar runner = new NUnitTestAssemblyRunner(builder);\r\nvar test = runner.Load(assembly, new Dictionary<string, object>());\r\nvar listener = new MyTestListener(); // shows results in custom UI\r\nvar result = runner.Run(listener, new CategoryFilter());\r\n```\r\n\r\nThis is working really well for me, but the platform-specific stuff in the dll means I can't do my UI tests when building Xamarin.Mac / Xamarin.iOS unified due to the System.Windows.dll reference.\r\n\r\nI was very hopeful with 3.0's goal of exposing an API to run tests, but it may not be usable in all current (and especially future) platforms unless the API is unencumbered by platform-specific UI code.  It would also be especially useful for platforms such as .NET Core, where there is no UI other than web (unless you are also planning on building a nunitlite UI for that as well?).\r\n\r\nIt might be very simple to provide this, which is to have the PCL version of nunitlite have no UI, whereas the platform-specific nunitlite dll's would include the UI.  This really is all about flexibility.  Providing the core test running API without UI will make nunit much more portable when new platforms arise.\r\n\r\nThanks again for hearing me out!"}}