<p dir="auto">One way to implement <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="204130237" data-permission-text="Title is private" data-url="https://github.com/flutter/flutter/issues/7739" data-hovercard-type="issue" data-hovercard-url="/flutter/flutter/issues/7739/hovercard" href="https://github.com/flutter/flutter/issues/7739">#7739</a> would be to create a headless test device. This would be based off of sky_shell, and be accessed through something like <code class="notranslate">flutter run -d test_shell</code>.</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tvolkert/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tvolkert">@tvolkert</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yjbanov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yjbanov">@yjbanov</a></p>
<p dir="auto">A <code class="notranslate">HostDevice</code> is similar to <code class="notranslate">AndroidDevice</code> and <code class="notranslate">IOSDevice</code> but runs Flutter shell on the host machine instead of a real device or an emulator. We already do this for <code class="notranslate">flutter test</code>. This feature request is to extend this capability to other commands, especially <code class="notranslate">run</code> and <code class="notranslate">drive</code>.</p>
<p dir="auto">Flutter tools should have an option to use a host device as a deployment target. Strawman:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="flutter run -d host
flutter drive -d host"><pre class="notranslate"><code class="notranslate">flutter run -d host
flutter drive -d host
</code></pre></div>
<h2 dir="auto">Why?</h2>
<p dir="auto"><strong>tl;dr</strong> so we can run more tests on Travis as a pre-submit step</p>
<ul dir="auto">
<li>smoke-test <code class="notranslate">flutter</code> sub-commands, such as <code class="notranslate">run</code> and <code class="notranslate">drive</code></li>
<li>sanity check our integration tests prior to sending them over to the device lab, such as:
<ul dir="auto">
<li>performance tests</li>
<li>hot-reload dev cycle tests</li>
</ul>
</li>
</ul>
<p dir="auto">/cc <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/devoncarew/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/devoncarew">@devoncarew</a></p>