diff --git a/bin/run.js b/bin/run.js
index <HASH>..<HASH> 100755
--- a/bin/run.js
+++ b/bin/run.js
@@ -86,12 +86,6 @@ const main = async options => {
   if (options['nyc-help'])
     return nycHelp()
 
-  if (options._.length === 0 && isTTY) {
-    options._.push.apply(options._, await defaultFiles(options))
-  }
-
-  options.files = globFiles(options._)
-
   process.stdout.on('error', er => {
     /* istanbul ignore else */
     if (er.code === 'EPIPE')
@@ -106,9 +100,19 @@ const main = async options => {
   /* istanbul ignore next */
   if ((options._.explicit.has('coverage-report') ||
        options._.explicit.has('check-coverage')) &&
-      options.files.length === 0)
+      options._.length === 0)
     return runCoverageReportOnly(options)
 
+  try {
+    if (options._.length === 0 && isTTY) {
+      options._.push.apply(options._, await defaultFiles(options))
+    }
+  } catch (er) {
+    return require('../lib/tap.js').threw(er)
+  }
+
+  options.files = globFiles(options._)
+
   if (options.files.length === 0 && !isTTY)
     options.files.push('-')
re-enable --coverage-report with no files