diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim
index 0edcf58..8359eb1 100644
--- a/src/testdir/test_assert.vim
+++ b/src/testdir/test_assert.vim
@@ -36,6 +36,12 @@
   call remove(v:errors, 0)
 endfunc
 
+func Test_assert_report()
+  call assert_report('something is wrong')
+  call assert_match('something is wrong', v:errors[0])
+  call remove(v:errors, 0)
+endfunc
+
 func Test_assert_exception()
   try
     nocommand
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 28793b5..3694fc2 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -8,10 +8,14 @@
 
 let s:python = PythonProg()
 if s:python == ''
-  " Can't run this test.
+  " Can't run this test without Python.
   finish
 endif
 
+" Uncomment the next line to see what happens. Output is in
+" src/testdir/channellog.
+" call ch_logfile('channellog', 'w')
+
 let s:chopt = {}
 
 " Run "testfunc" after sarting the server and stop the server afterwards.
@@ -31,7 +35,7 @@
   let handle = ch_open('localhost:' . a:port, s:chopt)
   unlet s:chopt.drop
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   if has('job')
@@ -93,7 +97,7 @@
   call ch_sendexpr(handle, 'hello!', {'callback': 'Ch_requestHandler'})
   call WaitFor('exists("g:Ch_responseHandle")')
   if !exists('g:Ch_responseHandle')
-    call assert_false(1, 'g:Ch_responseHandle was not set')
+    call assert_report('g:Ch_responseHandle was not set')
   else
     call assert_equal(handle, g:Ch_responseHandle)
     unlet g:Ch_responseHandle
@@ -104,7 +108,7 @@
   call ch_sendexpr(handle, 'hello!', {'callback': function('Ch_requestHandler')})
   call WaitFor('exists("g:Ch_responseHandle")')
   if !exists('g:Ch_responseHandle')
-    call assert_false(1, 'g:Ch_responseHandle was not set')
+    call assert_report('g:Ch_responseHandle was not set')
   else
     call assert_equal(handle, g:Ch_responseHandle)
     unlet g:Ch_responseHandle
@@ -116,7 +120,7 @@
   call ch_sendexpr(handle, 'hello!', {'callback': {a, b -> Ch_requestHandler(a, b)}})
   call WaitFor('exists("g:Ch_responseHandle")')
   if !exists('g:Ch_responseHandle')
-    call assert_false(1, 'g:Ch_responseHandle was not set')
+    call assert_report('g:Ch_responseHandle was not set')
   else
     call assert_equal(handle, g:Ch_responseHandle)
     unlet g:Ch_responseHandle
@@ -209,7 +213,7 @@
   let handle = ch_open('localhost:' . a:port, s:chopt)
   call assert_equal(v:t_channel, type(handle))
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
 
@@ -217,7 +221,7 @@
 
   let newhandle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(newhandle) == "fail"
-    call assert_false(1, "Can't open second channel")
+    call assert_report("Can't open second channel")
     return
   endif
   call assert_equal('got it', ch_evalexpr(newhandle, 'hello!'))
@@ -238,7 +242,7 @@
 func Ch_server_crash(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
 
@@ -263,7 +267,7 @@
 func Ch_channel_handler(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
 
@@ -306,7 +310,7 @@
 func Ch_channel_zero(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
 
@@ -373,7 +377,7 @@
 func Ch_raw_one_time_callback(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   call ch_setoptions(handle, {'mode': 'raw'})
@@ -429,7 +433,7 @@
     endif
   catch
     if v:exception !~ 'Connection reset by peer'
-      call assert_false(1, "Caught exception: " . v:exception)
+      call assert_report("Caught exception: " . v:exception)
     endif
   endtry
 endfunc
@@ -1343,7 +1347,7 @@
   let channel = ch_open('localhost:' . a:port, s:chopt)
   unlet s:chopt.waittime
   if ch_status(channel) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   call assert_equal('got it', ch_evalexpr(channel, 'hello!'))
@@ -1365,7 +1369,7 @@
 function Ch_test_call(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
 
@@ -1463,7 +1467,7 @@
 function Ch_test_close_callback(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   call ch_setoptions(handle, {'close_cb': 'MyCloseCb'})
@@ -1481,7 +1485,7 @@
 function Ch_test_close_partial(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   let g:Ch_d = {}
@@ -1631,7 +1635,7 @@
 function Ch_test_close_lambda(port)
   let handle = ch_open('localhost:' . a:port, s:chopt)
   if ch_status(handle) == "fail"
-    call assert_false(1, "Can't open channel")
+    call assert_report("Can't open channel")
     return
   endif
   let g:Ch_close_ret = ''
@@ -1646,6 +1650,3 @@
   call ch_log('Test_close_lambda()')
   call s:run_server('Ch_test_close_lambda')
 endfunc
-
-" Uncomment this to see what happens, output is in src/testdir/channellog.
-" call ch_logfile('channellog', 'w')
diff --git a/src/testdir/test_cscope.vim b/src/testdir/test_cscope.vim
index 4e78faa..4d776e9 100644
--- a/src/testdir/test_cscope.vim
+++ b/src/testdir/test_cscope.vim
@@ -28,7 +28,7 @@
       cscope add Xcscope.out
       set cscopeverbose
     catch
-      call assert_true(0)
+      call assert_report('exception thrown')
     endtry
     call assert_fails('cscope add', 'E560')
     call assert_fails('cscope add Xcscope.out', 'E568')
diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim
index 3553541..d784e36 100644
--- a/src/testdir/test_cursor_func.vim
+++ b/src/testdir/test_cursor_func.vim
@@ -1,13 +1,7 @@
 " Tests for cursor().
 
 func Test_wrong_arguments()
-  try
-    call cursor(1. 3)
-    " not reached
-    call assert_false(1)
-  catch
-    call assert_exception('E474:')
-  endtry
+  call assert_fails('call cursor(1. 3)', 'E474:')
 endfunc
 
 func Test_move_cursor()
diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim
index 80cdc1b..c47bc22 100644
--- a/src/testdir/test_expr.vim
+++ b/src/testdir/test_expr.vim
@@ -87,7 +87,7 @@
 func Test_loop_over_null_list()
   let null_list = test_null_list()
   for i in null_list
-    call assert_true(0, 'should not get here')
+    call assert_report('should not get here')
   endfor
 endfunc
 
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 3e06eab..f044f3a 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -505,7 +505,7 @@
       " Case 2: guifontset is invalid
       try
         set guifontset=-*-notexist-*
-        call assert_false(1, "'set guifontset=-*-notexist-*' should have failed")
+        call assert_report("'set guifontset=-*-notexist-*' should have failed")
       catch
         call assert_exception('E598')
       endtry
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index 8acc844..055d944 100644
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -8,7 +8,7 @@
   try
     source $VIMRUNTIME/menu.vim
   catch
-    call assert_false(1, 'error while loading menus: ' . v:exception)
+    call assert_report('error while loading menus: ' . v:exception)
   endtry
   call assert_match('browse confirm w', execute(':menu File.Save'))
   source $VIMRUNTIME/delmenu.vim
diff --git a/src/testdir/test_perl.vim b/src/testdir/test_perl.vim
index 16fc687..6ef17ad 100644
--- a/src/testdir/test_perl.vim
+++ b/src/testdir/test_perl.vim
@@ -132,7 +132,7 @@
   catch
     return v:exception
   endtry
-  call assert_true(0, 'no exception for `perleval("'.a:expr.'")`')
+  call assert_report('no exception for `perleval("'.a:expr.'")`')
   return ''
 endfunc
 
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 2823ed6..4789ca7 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -562,7 +562,7 @@
   %d
   try
     call feedkeys("o/*\<cr>\<cr>\<c-x>\<c-u>/\<esc>", 'tx')
-    call assert_false(1, 'completefunc not set, should have failed')
+    call assert_report('completefunc not set, should have failed')
   catch
     call assert_exception('E764:')
   endtry
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim
index 7d0f157..6c0e533 100644
--- a/src/testdir/test_viminfo.vim
+++ b/src/testdir/test_viminfo.vim
@@ -450,13 +450,13 @@
   let lnum = line('.')
   while 1
     if lnum == line('$')
-      call assert_false(1, 'mark not found in Xtestfileintab')
+      call assert_report('mark not found in Xtestfileintab')
       break
     endif
     let lnum += 1
     let line = getline(lnum)
     if line == ''
-      call assert_false(1, 'mark not found in Xtestfileintab')
+      call assert_report('mark not found in Xtestfileintab')
       break
     endif
     if line =~ "^\t\""
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index c4dd036..a299581 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1256,14 +1256,14 @@
                     \ '.',
                     \ ])
     catch
-        call assert_false(1, "Can't define function")
+        call assert_report("Can't define function")
     endtry
     try
         call DefineFunction('T_Append', [
                     \ 'append',
                     \ 'abc',
                     \ ])
-        call assert_false(1, "Shouldn't be able to define function")
+        call assert_report("Shouldn't be able to define function")
     catch
         call assert_exception('Vim(function):E126: Missing :endfunction')
     endtry
@@ -1276,14 +1276,14 @@
                     \ '.',
                     \ ])
     catch
-        call assert_false(1, "Can't define function")
+        call assert_report("Can't define function")
     endtry
     try
         call DefineFunction('T_Change', [
                     \ 'change',
                     \ 'abc',
                     \ ])
-        call assert_false(1, "Shouldn't be able to define function")
+        call assert_report("Shouldn't be able to define function")
     catch
         call assert_exception('Vim(function):E126: Missing :endfunction')
     endtry
@@ -1296,14 +1296,14 @@
                     \ '.',
                     \ ])
     catch
-        call assert_false(1, "Can't define function")
+        call assert_report("Can't define function")
     endtry
     try
         call DefineFunction('T_Insert', [
                     \ 'insert',
                     \ 'abc',
                     \ ])
-        call assert_false(1, "Shouldn't be able to define function")
+        call assert_report("Shouldn't be able to define function")
     catch
         call assert_exception('Vim(function):E126: Missing :endfunction')
     endtry
