The problem is that this error cannot be caught. As soon as you try to put the call into a condition-case form:
(condition-case nil
(buttercupt-run)
(error ...))
you will catch also buttercup-failed signals, so you will effectively abort the test run early. It seems that buttercup-failed is transformed into a tag throw by buttercup--debugger which is not run if there is a matching condition-case clause up the stack.
Proposal: create a variable buttercup-failure-exit with initial value (lambda () (error "")) and funcall it in buttercup-run when appropriate. Then default behavior will not change, but users would be able to get rid of the error if needed.
The function basically looks like this:
The problem is that this error cannot be caught. As soon as you try to put the call into a
condition-case
form:you will catch also
buttercup-failed
signals, so you will effectively abort the test run early. It seems thatbuttercup-failed
is transformed into a tag throw bybuttercup--debugger
which is not run if there is a matchingcondition-case
clause up the stack.Proposal: create a variable
buttercup-failure-exit
with initial value(lambda () (error ""))
andfuncall
it inbuttercup-run
when appropriate. Then default behavior will not change, but users would be able to get rid of the error if needed.