{"action":"closed","number":2184,"pull_request":{"url":"https://api.github.com/repos/sulu-io/sulu/pulls/2184","id":64046890,"html_url":"https://github.com/sulu-io/sulu/pull/2184","diff_url":"https://github.com/sulu-io/sulu/pull/2184.diff","patch_url":"https://github.com/sulu-io/sulu/pull/2184.patch","issue_url":"https://api.github.com/repos/sulu-io/sulu/issues/2184","number":2184,"state":"closed","locked":false,"title":"[WIP] Cross platform test runner","user":{"login":"dantleech","id":530801,"avatar_url":"https://avatars.githubusercontent.com/u/530801?v=3","gravatar_id":"","url":"https://api.github.com/users/dantleech","html_url":"https://github.com/dantleech","followers_url":"https://api.github.com/users/dantleech/followers","following_url":"https://api.github.com/users/dantleech/following{/other_user}","gists_url":"https://api.github.com/users/dantleech/gists{/gist_id}","starred_url":"https://api.github.com/users/dantleech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dantleech/subscriptions","organizations_url":"https://api.github.com/users/dantleech/orgs","repos_url":"https://api.github.com/users/dantleech/repos","events_url":"https://api.github.com/users/dantleech/events{/privacy}","received_events_url":"https://api.github.com/users/dantleech/received_events","type":"User","site_admin":false},"body":"| Q | A\r\n| --- | ---\r\n| Bug fix? | no\r\n| New feature? | no\r\n| BC breaks? | no\r\n| Deprecations? | no\r\n| Fixed tickets | fixes #issuenum\r\n| Related issues/PRs | #issuenum\r\n| License | MIT\r\n| Documentation PR | sulu-io/sulu-docs#prnum\r\n\r\n#### What's in this PR?\r\n\r\nThis PR replaces the bash script which runs our tests with a PHP script, this\r\nis to allow our builds to run more easily on windows.\r\n\r\n#### Why?\r\n\r\nBecause we would like Windows users to be able to easily run the test suite, also enable us to easier debug window build fails\r\nand better maintain the continuous integration environment on Windows.\r\n\r\nWhy not just run everything from travis?\r\n\r\n- Some bundles require their database schemas to be updated (as they have a different bundle set).\r\n- We currently need to restart Jackrabbit between builds.\r\n- The output isn't as informative as either the previous script or this one.\r\n- The bundles need to have the `vendor` directory symlinked.\r\n\r\nSo, all in all it is probably better to have a script, at least for now,\r\n\r\nAlso note:\r\n\r\n- Component tests are now executed from the test runner.\r\n- The `bin` directory now contains only two files.\r\n- Ability to pass flags to PHPUnit with the `--flags` options.\r\n- Looks better.\r\n- Jackrabbit downloaded in travis.\r\n- Shows the configuration parameters.\r\n- ...\r\n\r\n![sulutest1](https://cloud.githubusercontent.com/assets/530801/14043036/df27c000-f277-11e5-9e34-50d62af59ff9.png)\r\n\r\n![sulutest2](https://cloud.githubusercontent.com/assets/530801/14043037/e5af12e8-f277-11e5-8dea-d2557a90f768.png)\r\n\r\n\r\n#### Example Usage\r\n\r\nScript has the same API as previously but with some additional options:\r\n\r\n```bash\r\n$ php bin/runtests.php -tContactBundle # Target (also --target)\r\n$ php bin/runtests.php -i # Initialize (also --initialize)\r\n$ php bin/runtests.php -a # run all tests (also --all)\r\n```\r\n\r\nThe new flags:\r\n\r\n```bash\r\n$ php bin/runtests.php --flags=\"--stop-on-failure --stop-on-error\" # pass phpunit flags\r\n```\r\n","created_at":"2016-03-24T15:04:10Z","updated_at":"2016-03-25T13:07:56Z","closed_at":"2016-03-25T13:07:56Z","merged_at":"2016-03-25T13:07:56Z","merge_commit_sha":"e9a65e0664d9a9b6e780bd0f02bab6bf54a996cf","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/sulu-io/sulu/pulls/2184/commits","review_comments_url":"https://api.github.com/repos/sulu-io/sulu/pulls/2184/comments","review_comment_url":"https://api.github.com/repos/sulu-io/sulu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sulu-io/sulu/issues/2184/comments","statuses_url":"https://api.github.com/repos/sulu-io/sulu/statuses/8f19a01be75ecf4e3789a94705387785b45c8bce","head":{"label":"dantleech:cross_platform_test_runner","ref":"cross_platform_test_runner","sha":"8f19a01be75ecf4e3789a94705387785b45c8bce","user":{"login":"dantleech","id":530801,"avatar_url":"https://avatars.githubusercontent.com/u/530801?v=3","gravatar_id":"","url":"https://api.github.com/users/dantleech","html_url":"https://github.com/dantleech","followers_url":"https://api.github.com/users/dantleech/followers","following_url":"https://api.github.com/users/dantleech/following{/other_user}","gists_url":"https://api.github.com/users/dantleech/gists{/gist_id}","starred_url":"https://api.github.com/users/dantleech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dantleech/subscriptions","organizations_url":"https://api.github.com/users/dantleech/orgs","repos_url":"https://api.github.com/users/dantleech/repos","events_url":"https://api.github.com/users/dantleech/events{/privacy}","received_events_url":"https://api.github.com/users/dantleech/received_events","type":"User","site_admin":false},"repo":{"id":21705580,"name":"sulu","full_name":"dantleech/sulu","owner":{"login":"dantleech","id":530801,"avatar_url":"https://avatars.githubusercontent.com/u/530801?v=3","gravatar_id":"","url":"https://api.github.com/users/dantleech","html_url":"https://github.com/dantleech","followers_url":"https://api.github.com/users/dantleech/followers","following_url":"https://api.github.com/users/dantleech/following{/other_user}","gists_url":"https://api.github.com/users/dantleech/gists{/gist_id}","starred_url":"https://api.github.com/users/dantleech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dantleech/subscriptions","organizations_url":"https://api.github.com/users/dantleech/orgs","repos_url":"https://api.github.com/users/dantleech/repos","events_url":"https://api.github.com/users/dantleech/events{/privacy}","received_events_url":"https://api.github.com/users/dantleech/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dantleech/sulu","description":"Sulu 2.0 core bundle & components","fork":true,"url":"https://api.github.com/repos/dantleech/sulu","forks_url":"https://api.github.com/repos/dantleech/sulu/forks","keys_url":"https://api.github.com/repos/dantleech/sulu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dantleech/sulu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dantleech/sulu/teams","hooks_url":"https://api.github.com/repos/dantleech/sulu/hooks","issue_events_url":"https://api.github.com/repos/dantleech/sulu/issues/events{/number}","events_url":"https://api.github.com/repos/dantleech/sulu/events","assignees_url":"https://api.github.com/repos/dantleech/sulu/assignees{/user}","branches_url":"https://api.github.com/repos/dantleech/sulu/branches{/branch}","tags_url":"https://api.github.com/repos/dantleech/sulu/tags","blobs_url":"https://api.github.com/repos/dantleech/sulu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dantleech/sulu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dantleech/sulu/git/refs{/sha}","trees_url":"https://api.github.com/repos/dantleech/sulu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dantleech/sulu/statuses/{sha}","languages_url":"https://api.github.com/repos/dantleech/sulu/languages","stargazers_url":"https://api.github.com/repos/dantleech/sulu/stargazers","contributors_url":"https://api.github.com/repos/dantleech/sulu/contributors","subscribers_url":"https://api.github.com/repos/dantleech/sulu/subscribers","subscription_url":"https://api.github.com/repos/dantleech/sulu/subscription","commits_url":"https://api.github.com/repos/dantleech/sulu/commits{/sha}","git_commits_url":"https://api.github.com/repos/dantleech/sulu/git/commits{/sha}","comments_url":"https://api.github.com/repos/dantleech/sulu/comments{/number}","issue_comment_url":"https://api.github.com/repos/dantleech/sulu/issues/comments{/number}","contents_url":"https://api.github.com/repos/dantleech/sulu/contents/{+path}","compare_url":"https://api.github.com/repos/dantleech/sulu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dantleech/sulu/merges","archive_url":"https://api.github.com/repos/dantleech/sulu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dantleech/sulu/downloads","issues_url":"https://api.github.com/repos/dantleech/sulu/issues{/number}","pulls_url":"https://api.github.com/repos/dantleech/sulu/pulls{/number}","milestones_url":"https://api.github.com/repos/dantleech/sulu/milestones{/number}","notifications_url":"https://api.github.com/repos/dantleech/sulu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dantleech/sulu/labels{/name}","releases_url":"https://api.github.com/repos/dantleech/sulu/releases{/id}","deployments_url":"https://api.github.com/repos/dantleech/sulu/deployments","created_at":"2014-07-10T18:30:43Z","updated_at":"2016-03-14T15:37:38Z","pushed_at":"2016-03-25T12:57:35Z","git_url":"git://github.com/dantleech/sulu.git","ssh_url":"git@github.com:dantleech/sulu.git","clone_url":"https://github.com/dantleech/sulu.git","svn_url":"https://github.com/dantleech/sulu","homepage":"www.sulu.io","size":61263,"stargazers_count":0,"watchers_count":0,"language":"PHP","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":"develop"}},"base":{"label":"sulu-io:develop","ref":"develop","sha":"cf45c0cb7c1afbcb56cb74610ba69e310d153d8b","user":{"login":"sulu-io","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=3","gravatar_id":"","url":"https://api.github.com/users/sulu-io","html_url":"https://github.com/sulu-io","followers_url":"https://api.github.com/users/sulu-io/followers","following_url":"https://api.github.com/users/sulu-io/following{/other_user}","gists_url":"https://api.github.com/users/sulu-io/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-io/subscriptions","organizations_url":"https://api.github.com/users/sulu-io/orgs","repos_url":"https://api.github.com/users/sulu-io/repos","events_url":"https://api.github.com/users/sulu-io/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-io/received_events","type":"Organization","site_admin":false},"repo":{"id":13678015,"name":"sulu","full_name":"sulu-io/sulu","owner":{"login":"sulu-io","id":5717006,"avatar_url":"https://avatars.githubusercontent.com/u/5717006?v=3","gravatar_id":"","url":"https://api.github.com/users/sulu-io","html_url":"https://github.com/sulu-io","followers_url":"https://api.github.com/users/sulu-io/followers","following_url":"https://api.github.com/users/sulu-io/following{/other_user}","gists_url":"https://api.github.com/users/sulu-io/gists{/gist_id}","starred_url":"https://api.github.com/users/sulu-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sulu-io/subscriptions","organizations_url":"https://api.github.com/users/sulu-io/orgs","repos_url":"https://api.github.com/users/sulu-io/repos","events_url":"https://api.github.com/users/sulu-io/events{/privacy}","received_events_url":"https://api.github.com/users/sulu-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sulu-io/sulu","description":"Sulu core bundles & components","fork":false,"url":"https://api.github.com/repos/sulu-io/sulu","forks_url":"https://api.github.com/repos/sulu-io/sulu/forks","keys_url":"https://api.github.com/repos/sulu-io/sulu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sulu-io/sulu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sulu-io/sulu/teams","hooks_url":"https://api.github.com/repos/sulu-io/sulu/hooks","issue_events_url":"https://api.github.com/repos/sulu-io/sulu/issues/events{/number}","events_url":"https://api.github.com/repos/sulu-io/sulu/events","assignees_url":"https://api.github.com/repos/sulu-io/sulu/assignees{/user}","branches_url":"https://api.github.com/repos/sulu-io/sulu/branches{/branch}","tags_url":"https://api.github.com/repos/sulu-io/sulu/tags","blobs_url":"https://api.github.com/repos/sulu-io/sulu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sulu-io/sulu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sulu-io/sulu/git/refs{/sha}","trees_url":"https://api.github.com/repos/sulu-io/sulu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sulu-io/sulu/statuses/{sha}","languages_url":"https://api.github.com/repos/sulu-io/sulu/languages","stargazers_url":"https://api.github.com/repos/sulu-io/sulu/stargazers","contributors_url":"https://api.github.com/repos/sulu-io/sulu/contributors","subscribers_url":"https://api.github.com/repos/sulu-io/sulu/subscribers","subscription_url":"https://api.github.com/repos/sulu-io/sulu/subscription","commits_url":"https://api.github.com/repos/sulu-io/sulu/commits{/sha}","git_commits_url":"https://api.github.com/repos/sulu-io/sulu/git/commits{/sha}","comments_url":"https://api.github.com/repos/sulu-io/sulu/comments{/number}","issue_comment_url":"https://api.github.com/repos/sulu-io/sulu/issues/comments{/number}","contents_url":"https://api.github.com/repos/sulu-io/sulu/contents/{+path}","compare_url":"https://api.github.com/repos/sulu-io/sulu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sulu-io/sulu/merges","archive_url":"https://api.github.com/repos/sulu-io/sulu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sulu-io/sulu/downloads","issues_url":"https://api.github.com/repos/sulu-io/sulu/issues{/number}","pulls_url":"https://api.github.com/repos/sulu-io/sulu/pulls{/number}","milestones_url":"https://api.github.com/repos/sulu-io/sulu/milestones{/number}","notifications_url":"https://api.github.com/repos/sulu-io/sulu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sulu-io/sulu/labels{/name}","releases_url":"https://api.github.com/repos/sulu-io/sulu/releases{/id}","deployments_url":"https://api.github.com/repos/sulu-io/sulu/deployments","created_at":"2013-10-18T12:57:02Z","updated_at":"2016-03-14T10:44:30Z","pushed_at":"2016-03-25T13:07:56Z","git_url":"git://github.com/sulu-io/sulu.git","ssh_url":"git@github.com:sulu-io/sulu.git","clone_url":"https://github.com/sulu-io/sulu.git","svn_url":"https://github.com/sulu-io/sulu","homepage":"sulu.io","size":70750,"stargazers_count":108,"watchers_count":108,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":29,"mirror_url":null,"open_issues_count":357,"forks":29,"open_issues":357,"watchers":108,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/sulu-io/sulu/pulls/2184"},"html":{"href":"https://github.com/sulu-io/sulu/pull/2184"},"issue":{"href":"https://api.github.com/repos/sulu-io/sulu/issues/2184"},"comments":{"href":"https://api.github.com/repos/sulu-io/sulu/issues/2184/comments"},"review_comments":{"href":"https://api.github.com/repos/sulu-io/sulu/pulls/2184/comments"},"review_comment":{"href":"https://api.github.com/repos/sulu-io/sulu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sulu-io/sulu/pulls/2184/commits"},"statuses":{"href":"https://api.github.com/repos/sulu-io/sulu/statuses/8f19a01be75ecf4e3789a94705387785b45c8bce"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"danrot","id":405874,"avatar_url":"https://avatars.githubusercontent.com/u/405874?v=3","gravatar_id":"","url":"https://api.github.com/users/danrot","html_url":"https://github.com/danrot","followers_url":"https://api.github.com/users/danrot/followers","following_url":"https://api.github.com/users/danrot/following{/other_user}","gists_url":"https://api.github.com/users/danrot/gists{/gist_id}","starred_url":"https://api.github.com/users/danrot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danrot/subscriptions","organizations_url":"https://api.github.com/users/danrot/orgs","repos_url":"https://api.github.com/users/danrot/repos","events_url":"https://api.github.com/users/danrot/events{/privacy}","received_events_url":"https://api.github.com/users/danrot/received_events","type":"User","site_admin":false},"comments":1,"review_comments":11,"commits":2,"additions":520,"deletions":644,"changed_files":19}}