diff --git a/src/runner.js b/src/runner.js
index <HASH>..<HASH> 100644
--- a/src/runner.js
+++ b/src/runner.js
@@ -389,7 +389,11 @@ async function runTest(test, logs) {
   } else {
     file.passCount += 1
     if (runner.verbose) {
-      logs.prepend(indent + huey.green('✦ ') + getTestName(test) + '\n')
+      if (logs.length) {
+        logs.ln()
+        logs.prepend('')
+      }
+      logs.prepend(indent + huey.green('✦ ') + getTestName(test))
     } else {
       logs.quiet = true
     }
@@ -455,10 +459,10 @@ async function runGroup(group) {
           logs = mockConsole(true)
           logs.quiet = runner.quiet
         }
-        log('')
         try {
           await runAll(group.afterEach)
         } finally {
+          logs.ln()
           logs.exec()
         }
       } else if (test.fn) {
fix: ensure an empty line exists between sections

Where "sections" refers to:
  - test names
  - test logs
  - test errors
  - beforeEach logs
  - afterEach logs

NOTE: If a test has no logs, no empty line will exist between its name and the next test's name.