Add new instanced test runner
This will run the unit tests for each module in a separate Emacs instance. It's a fair bit slower, but much more useful for something as stateful as an Emacs config. Now I just need to push the rewritten tests.
This commit is contained in:
parent
44c694da47
commit
2122a31962
2 changed files with 36 additions and 0 deletions
1
bin/doom
1
bin/doom
|
@ -7,6 +7,7 @@
|
|||
":"; [ "$1" = -d ] || [ "$1" = --debug ] && { shift; export DEBUG=1; }
|
||||
":"; [ "$1" = doc ] || [ "$1" = doctor ] && { cd "$DOOMBASE"; shift; exec $EMACS --script bin/doom-doctor "$@"; exit 0; }
|
||||
":"; [ "$1" = run ] && { cd "$DOOMBASE"; shift; exec $EMACS -q --no-splash -l bin/doom "$@"; exit 0; }
|
||||
":"; [ "$1" = test ] && { cd "$DOOMBASE"; shift; exec bin/doom-test "$@"; }
|
||||
":"; exec $EMACS --script "$0" -- "$@"
|
||||
":"; exit 0
|
||||
|
||||
|
|
35
bin/doom-test
Executable file
35
bin/doom-test
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Set up test config
|
||||
export DOOMDIR=/tmp/doom/
|
||||
export DOOMLOCALDIR=/tmp/doom/.local/
|
||||
if [[ ! -d "$DOOMDIR" ]]; then
|
||||
mkdir -p "$DOOMDIR"
|
||||
ln -s ~/.emacs.d/init.test.el "$DOOMDIR"/init.el
|
||||
fi
|
||||
|
||||
# Set up testing library
|
||||
BUTTERCUPLIB="${DOOMLOCALDIR}buttercup"
|
||||
EMACSBIN="emacs --batch -l ~/.emacs.d/init.el -L $BUTTERCUPLIB -l buttercup"
|
||||
if [[ ! -d "$BUTTERCUPLIB" ]]; then
|
||||
git clone https://github.com/jorgenschaefer/emacs-buttercup "$BUTTERCUPLIB"
|
||||
fi
|
||||
|
||||
# Run the tests
|
||||
if [[ ! -f $DOOMLOCALDIR/init || $1 == "-f" ]]; then
|
||||
doom -y refresh
|
||||
echo 1 > $DOOMLOCALDIR/init
|
||||
fi
|
||||
echo
|
||||
echo
|
||||
error=
|
||||
args=( $@ )
|
||||
(( $# == 0 )) && args=( core modules/*/* )
|
||||
for base in $args; do
|
||||
if [[ -d "$base/test" ]]; then
|
||||
echo Running $base
|
||||
$EMACSBIN -f doom-run-tests "$base" || error=1
|
||||
fi
|
||||
done
|
||||
|
||||
[[ $error ]] && exit 1
|
Loading…
Add table
Add a link
Reference in a new issue