Я разрабатываю пакет Emacs, который запускается с Emacs-22 до Emacs26, и я хотел бы подтвердить, что тест проходит с этими Emacs.
Однако, поскольку каждый журнал длинный, я бы хотелсобрать возвращаемое значение каждого теста и ясно показать его в конце.
Как я могу написать это в Makefile?Список тестируемых Emacs был получен в ALL_EMACS_VERS
в виде массива (22,1 23,4 24,5 25,3 26,1), и теперь я запускаю тест следующим образом.
EMACS ?= emacs
LOAD_PATH := -L $(dir $(lastword $(MAKEFILE_LIST)))
BATCH := $(EMACS) -Q --batch $(LOAD_PATH)
ALL_EMACS_VERS := $(shell compgen -c emacs- | grep -oP '(?<=emacs-)([0-9]|\.)+' | sort | uniq)
test:
$(BATCH) -l srt-tests.el -f srt-run-tests
debug-localtest:
for ver in $(ALL_EMACS_VERS); do \
echo "=== test by emacs-$${ver}... ==="; \
EMACS=emacs-$${ver} make test; \
done
Я хотел бы получить информациюна какой версии тест пройден или не пройден, и выведите его следующим образом.
=== test by emacs-22.1 ===
emacs-22.1 -Q --batch -L ./ -l srt-tests.el -f srt-run-tests
Running 30 tests...
GNU Emacs 22.1.1 (mac-apple-darwin)
of 2017-10-07 on osx339.sd.apple.com
[PASSED] simple:equal
[PASSED] simple:=
...
===== Run 30 Tests, 29 Expected, 1 Failed, 0 Errored =====
make[1]: Leaving directory '/Users/conao/Develop/git/.dotfiles/.emacs.d/local/26.1/site-lisp/srt.el'
=== test by emacs-23.4 ===
emacs-23.4 -Q --batch -L ./ -l srt-tests.el -f srt-run-tests
Running 30 tests...
GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
of 2012-01-29 on bob.porkrind.org
[PASSED] simple:equal
[PASSED] simple:=
...
===== Run 30 Tests, 29 Expected, 1 Failed, 0 Errored =====
make[1]: Leaving directory '/Users/conao/Develop/git/.dotfiles/.emacs.d/local/26.1/site-lisp/srt.el'
...
(Emacs 24.5, 25.3, 26.1)
...
=== localtest completed!! ===
*FAILED* Emacs-22.1
*FAILED* Emacs-23.4
[PASSED] Emacs-24.5
*FAILED* Emacs-25.3
[PASSED] Emacs-26.1