<p dir="auto">Yes I know this has been discussed already :) but I'd like to start the discussion again with a nice summary of the arguments that were expressed:</p>
<blockquote>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fabpot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fabpot">@fabpot</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="7572840" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/5748" data-hovercard-type="pull_request" data-hovercard-url="/symfony/symfony/pull/5748/hovercard" href="https://github.com/symfony/symfony/pull/5748">#5748</a>: For me, PHPunit is a tool and I'm not comfortable (yet) about adding this tool dep into the composer file.</p>
</blockquote>
<p dir="auto">PHPUnit is not just a tool, it's also a framework: we use PHPUnit classes to write the tests. So it's not just about downloading and running a phar, it's also about installing the code so that we can use it like any framework/library.</p>
<p dir="auto">As a more concrete example, PHPUnit 4.5 has added <a href="https://thephp.cc/news/2015/02/phpunit-4-5-and-prophecy" rel="nofollow">important new features</a> to the test framework and only by requiring it in Composer can you make sure people install the latest version.</p>
<blockquote>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stof/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stof">@stof</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="44914298" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/12136" data-hovercard-type="issue" data-hovercard-url="/symfony/symfony/issues/12136/hovercard" href="https://github.com/symfony/symfony/issues/12136">#12136</a>: Adding phpunit as a dev requirement means that each Travis build has to install 15 more composer packages (phpunit is not a small dependency)</p>
</blockquote>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pborreli/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pborreli">@pborreli</a> mentions this in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="7572840" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/5748" data-hovercard-type="pull_request" data-hovercard-url="/symfony/symfony/pull/5748/hovercard" href="https://github.com/symfony/symfony/pull/5748">#5748</a>: "indeed, build takes 1 second more approx, which is not much"</p>
<p dir="auto">Another reason I've read:</p>
<blockquote>
<p dir="auto">When working with VMs the global include path is not accessible on the host machine</p>
</blockquote>
<p dir="auto">For me autocompletion &amp; co is completely broken because the IDE can't find the PHPUnit <em>framework</em> classes. It's much harder to work with tests. And by adding the global tools (i.e. global composer install) to PhpStorm I now have a lot of duplicated classes, which trips the IDE even more.</p>
<p dir="auto">So hopefully we can open this discussion again and add PHPUnit to <code class="notranslate">require-dev</code> in <code class="notranslate">composer.json</code> :)?</p>
<p dir="auto">Just as a reminder for 4.0 to not forget <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="126717489" data-permission-text="Title is private" data-url="https://github.com/symfony/symfony/issues/17379" data-hovercard-type="pull_request" data-hovercard-url="/symfony/symfony/pull/17379/hovercard" href="https://github.com/symfony/symfony/pull/17379">#17379</a>.</p>
<blockquote>
<p dir="auto">This PR makes <code class="notranslate">Request::getMimeType()</code>,  <code class="notranslate">Request::getFormat()</code> and <code class="notranslate">Request::setFormat()</code> static.</p>
</blockquote>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Tobion/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Tobion">@Tobion</a> can you add to this issue the <code class="notranslate">4.0</code> milestone please?</p>