diff --git a/src/testdir/test_codestyle.vim b/src/testdir/test_codestyle.vim
index 509e135..074468e 100644
--- a/src/testdir/test_codestyle.vim
+++ b/src/testdir/test_codestyle.vim
@@ -1,17 +1,24 @@
 " Test for checking the source code style.
 
+def s:ReportError(fname: string, lnum: number, msg: string)
+  if lnum > 0
+    assert_report(fname .. ' line ' .. lnum .. ': ' .. msg)
+  endif
+enddef
+
 def Test_source_files()
   for fname in glob('../*.[ch]', 0, 1)
     bwipe!
+    g:ignoreSwapExists = 'e'
     exe 'edit ' .. fname
 
     cursor(1, 1)
     var lnum = search(' \t')
-    assert_equal(0, lnum, fname .. ': space before tab')
+    ReportError(fname, lnum, 'space before Tab')
 
     cursor(1, 1)
     lnum = search('\s$')
-    assert_equal(0, lnum, fname .. ': trailing white space')
+    ReportError(fname, lnum, 'trailing white space')
 
     # some files don't stick to the Vim style rules
     if fname =~ 'iscygpty.c'
@@ -25,22 +32,22 @@
     var skip = 'getline(".") =~ "condition) {" || getline(".") =~ "vimglob_func" || getline(".") =~ "{\"" || getline(".") =~ "{\\d" || getline(".") =~ "{{{"'
     cursor(1, 1)
     lnum = search(')\s*{', '', 0, 0, skip)
-    assert_equal(0, lnum, fname .. ': curly after closing paren')
+    ReportError(fname, lnum, 'curly after closing paren')
 
     # Examples in comments use double quotes.
     skip = "getline('.') =~ '\"'"
 
     cursor(1, 1)
     lnum = search('}\s*else', '', 0, 0, skip)
-    assert_equal(0, lnum, fname .. ': curly before "else"')
+    ReportError(fname, lnum, 'curly before "else"')
 
     cursor(1, 1)
     lnum = search('else\s*{', '', 0, 0, skip)
-    assert_equal(0, lnum, fname .. ': curly after "else"')
+    ReportError(fname, lnum, 'curly after "else"')
 
     cursor(1, 1)
     lnum = search('\<\(if\|while\|for\)(', '', 0, 0, skip)
-    assert_equal(0, lnum, fname .. ': missing white space after "if"/"while"/"for"')
+    ReportError(fname, lnum, 'missing white space after "if"/"while"/"for"')
   endfor
 
   bwipe!
@@ -48,6 +55,7 @@
 
 def Test_test_files()
   for fname in glob('*.vim', 0, 1)
+    g:ignoreSwapExists = 'e'
     exe 'edit ' .. fname
 
     # some files intentionally have misplaced white space
@@ -61,7 +69,7 @@
         && fname !~ 'test_visual.vim'
       cursor(1, 1)
       var lnum = search(fname =~ "test_regexp_latin" ? '[^á] \t' : ' \t')
-      assert_equal(0, lnum, 'testdir/' .. fname .. ': space before tab')
+      ReportError('testdir/' .. fname, lnum, 'space before Tab')
     endif
 
     # skip files that are known to have trailing white space
@@ -76,7 +84,7 @@
           : fname =~ 'test_vim9_script.vim' ? '[^,:3]\s$'
           : fname =~ 'test_visual.vim' ? '[^/]\s$'
           : '[^\\]\s$')
-      assert_equal(0, lnum, 'testdir/' .. fname .. ': trailing white space')
+      ReportError('testdir/' .. fname, lnum, 'trailing white space')
     endif
   endfor
 
@@ -88,6 +96,7 @@
   set nowrapscan
 
   for fpath in glob('../../runtime/doc/*.txt', 0, 1)
+    g:ignoreSwapExists = 'e'
     exe 'edit ' .. fpath
 
     var fname = fnamemodify(fpath, ":t")
@@ -106,7 +115,7 @@
         || fname == 'usr_27.txt' && getline(lnum) =~ "\[^\? \t\]"
         continue
       endif
-      assert_equal(0, lnum, fpath .. ': space before tab')
+      ReportError(fpath, lnum, 'space before tab')
       if lnum == 0
         break
       endif
@@ -123,18 +132,17 @@
         || fname == 'change.txt' && getline(lnum) =~ "foobar bla $"
         continue
       endif
-      assert_equal(0, lnum, fpath .. ': trailing white space')
+      ReportError('testdir' .. fpath, lnum, 'trailing white space')
       if lnum == 0
         break
       endif
     endwhile
 
-    # TODO: Do check and fix help files
-#    # Check over 80 columns
+#    # TODO: Check for line over 80 columns
 #    cursor(1, 1)
 #    while 1
 #      lnum = search('\%>80v.*$')
-#      assert_equal(0, lnum, fpath .. ': line over 80 columns')
+#      ReportError(fpath, lnum, 'line over 80 columns')
 #      if lnum == 0
 #        break
 #      endif
