{"action":"created","issue":{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/105","labels_url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/105/labels{/name}","comments_url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/105/comments","events_url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/105/events","html_url":"https://github.com/superroma/testcafe-phoenix/issues/105","id":110014617,"number":105,"title":"Implement command line interface","user":{"login":"inikulin","id":453071,"avatar_url":"https://avatars.githubusercontent.com/u/453071?v=3","gravatar_id":"","url":"https://api.github.com/users/inikulin","html_url":"https://github.com/inikulin","followers_url":"https://api.github.com/users/inikulin/followers","following_url":"https://api.github.com/users/inikulin/following{/other_user}","gists_url":"https://api.github.com/users/inikulin/gists{/gist_id}","starred_url":"https://api.github.com/users/inikulin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inikulin/subscriptions","organizations_url":"https://api.github.com/users/inikulin/orgs","repos_url":"https://api.github.com/users/inikulin/repos","events_url":"https://api.github.com/users/inikulin/events{/privacy}","received_events_url":"https://api.github.com/users/inikulin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/labels/!IMPORTANT!","name":"!IMPORTANT!","color":"eb6420"},{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/labels/AREA:%20docs","name":"AREA: docs","color":"fef2c0"},{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/labels/AREA:%20server","name":"AREA: server","color":"fef2c0"},{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/labels/SYSTEM:%20CLI","name":"SYSTEM: CLI","color":"bfe5bf"},{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/labels/TYPE:%20enhancement","name":"TYPE: enhancement","color":"f7c6c7"}],"state":"open","locked":false,"assignee":{"login":"inikulin","id":453071,"avatar_url":"https://avatars.githubusercontent.com/u/453071?v=3","gravatar_id":"","url":"https://api.github.com/users/inikulin","html_url":"https://github.com/inikulin","followers_url":"https://api.github.com/users/inikulin/followers","following_url":"https://api.github.com/users/inikulin/following{/other_user}","gists_url":"https://api.github.com/users/inikulin/gists{/gist_id}","starred_url":"https://api.github.com/users/inikulin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inikulin/subscriptions","organizations_url":"https://api.github.com/users/inikulin/orgs","repos_url":"https://api.github.com/users/inikulin/repos","events_url":"https://api.github.com/users/inikulin/events{/privacy}","received_events_url":"https://api.github.com/users/inikulin/received_events","type":"User","site_admin":false},"milestone":null,"comments":30,"created_at":"2015-10-06T14:04:16Z","updated_at":"2015-10-12T08:46:27Z","closed_at":null,"body":"So, I would like to start bikeshedding regarding CLI. Here is how I see it:\r\n```\r\n Usage: testcafe [command] [options]\r\n\r\n\r\n  Commands:\r\n\r\n    run [config-name]            run tests with given configuration and/or options\r\n    add-config <config-name>     create run configuration for given options\r\n    remove-config <config-name>  remove run configuration\r\n\r\n  If [command] is not specified \"run\" command will be used as default\r\n\r\n  Options:\r\n\r\n    -h, --help                     output usage information\r\n    -V, --version                  output the version number\r\n    -lb, --list-browsers           output available browsers\r\n    -f, --files <file1>,...        files or glob patterns to run\r\n    -b, --browsers <browser1>,...  browsers to run tests in\r\n    -r, --reporter <name>          specify the reporter to use\r\n    -rp, --report-path <path>      output report to the file on the <path>\r\n    -s, --screenshots <path>       enable screenshots and save them to the <path>\r\n    -sf, --screenshots-on-fails    take screenshots on test fails\r\n    -g, --grep <pattern>           only run tests matching <pattern>\r\n    -f, --fgrep <string>           only run tests containing <string>\r\n    -fg, --fixture-grep <pattern>  only run fixtures matching <pattern>\r\n    -ff, --fixture-fgrep <string>  only run fixtures containing <string>\r\n    -nc, --no-colors               force disabling of colors\r\n    -gc, --global-config           use global configuration file\r\n```\r\n\r\nRegarding configurations: the idea is what you can save commonly used configuration with some alias, e.g.:\r\n```\r\n> testcafe add-config ie-grid -b ie -f test/**/*.js -fg ASPxGridView\r\n```\r\n\r\nThen this configuration will be saved to the `.testcaferc` file in the root of the project.\r\nOptionally you can use `-gc` flag. In that case configuration will be saved to the global configuration file and can be reused in other projects.\r\nIt's no required for the configuration to have all options, so you can adopt it for different projects by passing additional options on run:\r\n```\r\n> testcafe add-config ie-chrome -b ie,chrome\r\n> testcafe ie-chrome -f test/**/*.js\r\n``` \r\n\r\nWhat bothers me:\r\n- Is this configuration approach clear\r\n- Is this usage is clear enough (we can add link to the detailed docs, so it's kinda not a big deal)\r\n- Due to console limitations lists should not contains spaces, just `,`. E.g.:\r\n\r\n*this is correct:*\r\n```\r\ntestcafe -b chrome,ie,firefiox\r\n``` \r\n*this is not:*\r\n```\r\ntestcafe -b chrome, ie, firefiox\r\n``` \r\nI see it as a possible source for the user confusion.\r\n\r\nPlease, let me know what do you guys think and how we can make it better.\r\n\\cc @AlexanderMoskovkin @churkin @kirovboris @miherlosev @AlexanderMoskovkin @AndreyBelym @helen-dikareva @VasilyStrelyaev @MargaritaLoseva @arubtsov "},"comment":{"url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/comments/147330718","html_url":"https://github.com/superroma/testcafe-phoenix/issues/105#issuecomment-147330718","issue_url":"https://api.github.com/repos/superroma/testcafe-phoenix/issues/105","id":147330718,"user":{"login":"miherlosev","id":4133518,"avatar_url":"https://avatars.githubusercontent.com/u/4133518?v=3","gravatar_id":"","url":"https://api.github.com/users/miherlosev","html_url":"https://github.com/miherlosev","followers_url":"https://api.github.com/users/miherlosev/followers","following_url":"https://api.github.com/users/miherlosev/following{/other_user}","gists_url":"https://api.github.com/users/miherlosev/gists{/gist_id}","starred_url":"https://api.github.com/users/miherlosev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miherlosev/subscriptions","organizations_url":"https://api.github.com/users/miherlosev/orgs","repos_url":"https://api.github.com/users/miherlosev/repos","events_url":"https://api.github.com/users/miherlosev/events{/privacy}","received_events_url":"https://api.github.com/users/miherlosev/received_events","type":"User","site_admin":false},"created_at":"2015-10-12T08:46:27Z","updated_at":"2015-10-12T08:46:27Z","body":"good"}}