From: Paul Pogonyshev <pogonyshev@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 29025@debbugs.gnu.org
Subject: bug#29025: Option to run ERT in quiet mode
Date: Fri, 27 Oct 2017 14:26:38 +0200 [thread overview]
Message-ID: <CAG7BparWSDewHaiNHS7eoK7zeO15qd-Z70g=8_MpHsvRpRT9kw@mail.gmail.com> (raw)
In-Reply-To: <83h8uk7q7v.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]
Attached is the patch extended with requested changes.
Paul
On 27 October 2017 at 14:03, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Paul Pogonyshev <pogonyshev@gmail.com>
>> Date: Fri, 27 Oct 2017 11:51:40 +0200
>>
>> When running ERT from command-line with (ert-run-tests-batch ...), it
>> prints lots of lines for passed tests. The attached patch adds
>> variable `ert-quiet' that lets you omit such non-important lines:
>>
>> (let ((ert-quiet t)) (ert-run-tests-batch ...))
>>
>> Of course, default is nil, so there is no change for existing
>> invocations. It is fully backward compatible. Users don't have to
>> check Emacs version prior to binding this variable: on older version
>> there will be no effect, but ERT will work.
>
> Thanks, but please also provide patches for the Texinfo manual and
> NEWS.
[-- Attachment #2: 0001-Add-ert-quiet-variable.patch --]
[-- Type: text/x-patch, Size: 4756 bytes --]
From 116b31d20b0a23a73f489d2773ea9c746adc1c60 Mon Sep 17 00:00:00 2001
From: Paul Pogonyshev <pogonyshev@gmail.com>
Date: Fri, 27 Oct 2017 14:21:59 +0200
Subject: [PATCH] Add `ert-quiet' variable.
* lisp/emacs-lisp/ert.el (ert-quiet): New variable.
(ert-run-tests-batch): When `ert-quiet' is non-nil, don't
print non-important information.
* doc/misc/ert.texi (Running Tests in Batch Mode): Document it.
---
doc/misc/ert.texi | 13 +++++++++++++
etc/NEWS | 5 +++++
lisp/emacs-lisp/ert.el | 33 +++++++++++++++++++--------------
3 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 4a2c29dcb9..cdfba5701c 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -292,6 +292,19 @@ Running Tests in Batch Mode
emacs -batch -l ert -f ert-summarize-tests-batch-and-exit output.log
@end example
+By default, ERT in batch mode is quite verbose, printing a line with
+result after each test. This gives you progress information: how many
+tests have been executed and how many there are. However, in some
+cases this much output may be not wanted. In this case, set
+@code{ert-quiet} variable to a non-nil value:
+
+@example
+emacs -batch -l ert -l my-tests.el \
+ --eval "(let ((ert-quiet t)) (ert-run-tests-batch-and-exit))"
+@end example
+
+In quiet mode ERT prints only unexpected results and summary.
+
If ERT is not part of your Emacs distribution, you may need to use
@code{-L /path/to/ert/} so that Emacs can find it. You may need
additional @code{-L} flags to ensure that @code{my-tests.el} and all the
diff --git a/etc/NEWS b/etc/NEWS
index ec52460f77..9c23cb20dd 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -84,6 +84,11 @@ by default.
** Gamegrid
+** ERT
+
+*** New variable 'ert-quiet' allows to make ERT output in batch mode
+less verbose by removing non-essential information.
+
---
*** Gamegrid now determines its default glyph size based on display
dimensions, instead of always using 16 pixels. As a result, Tetris,
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el
index 3a3979e81f..1d69af8063 100644
--- a/lisp/emacs-lisp/ert.el
+++ b/lisp/emacs-lisp/ert.el
@@ -1333,6 +1333,9 @@ ert--insert-infos
;;; Running tests in batch mode.
+(defvar ert-quiet nil
+ "Non-nil makes ERT only print important information in batch mode.")
+
;;;###autoload
(defun ert-run-tests-batch (&optional selector)
"Run the tests specified by SELECTOR, printing results to the terminal.
@@ -1349,10 +1352,11 @@ ert-run-tests-batch
(lambda (event-type &rest event-args)
(cl-ecase event-type
(run-started
- (cl-destructuring-bind (stats) event-args
- (message "Running %s tests (%s)"
- (length (ert--stats-tests stats))
- (ert--format-time-iso8601 (ert--stats-start-time stats)))))
+ (unless ert-quiet
+ (cl-destructuring-bind (stats) event-args
+ (message "Running %s tests (%s)"
+ (length (ert--stats-tests stats))
+ (ert--format-time-iso8601 (ert--stats-start-time stats))))))
(run-ended
(cl-destructuring-bind (stats abortedp) event-args
(let ((unexpected (ert-stats-completed-unexpected stats))
@@ -1438,16 +1442,17 @@ ert-run-tests-batch
(ert-test-name test)))
(ert-test-quit
(message "Quit during %S" (ert-test-name test)))))
- (let* ((max (prin1-to-string (length (ert--stats-tests stats))))
- (format-string (concat "%9s %"
- (prin1-to-string (length max))
- "s/" max " %S")))
- (message format-string
- (ert-string-for-test-result result
- (ert-test-result-expected-p
- test result))
- (1+ (ert--stats-test-pos stats test))
- (ert-test-name test)))))))
+ (unless ert-quiet
+ (let* ((max (prin1-to-string (length (ert--stats-tests stats))))
+ (format-string (concat "%9s %"
+ (prin1-to-string (length max))
+ "s/" max " %S")))
+ (message format-string
+ (ert-string-for-test-result result
+ (ert-test-result-expected-p
+ test result))
+ (1+ (ert--stats-test-pos stats test))
+ (ert-test-name test))))))))
nil))
;;;###autoload
--
2.14.2
next prev parent reply other threads:[~2017-10-27 12:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-27 9:51 bug#29025: Option to run ERT in quiet mode Paul Pogonyshev
2017-10-27 12:03 ` Eli Zaretskii
2017-10-27 12:26 ` Paul Pogonyshev [this message]
2017-10-28 10:51 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAG7BparWSDewHaiNHS7eoK7zeO15qd-Z70g=8_MpHsvRpRT9kw@mail.gmail.com' \
--to=pogonyshev@gmail.com \
--cc=29025@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.