Introspecting test suite passing/failing
Mark Evenson
evenson at panix.com
Thu Jun 7 06:03:17 UTC 2018
> On Jun 7, 2018, at 00:21, Robert Goldman <rpgoldman at sift.info> wrote:
>
> When I replaced fiveam-tester-system with :fiveam-tester-system or "FIVEAM-TESTER-SYSTEM", the load went fine for me with the latest ASDF on Allegro, SBCL, and ABCL 1.5.0.
I must have been somehow introducing errors by being non-rigorous in my testing yesterday because when I woke up fresh today to revisit this problem, I was indeed able to get both the keyword package designator and the string package designator forms to work under sbcl-1.4.8, ccl-1.11.5, and lispworks-pro-7.1.0.0.
I worked over my code to the point that I am ready to start integrating with my test harness invocation code.
Instead of using ERROR for raising the condition, I am [going to use SIGNAL][1]. This will mean that as long as no handler for ASDF:TEST-SUITE-FAILURES is installed, the test suite can be invoked by a developer normally. But when the automated test runner invokes the tests with an [appropiate handler installed][2], I’ll be able to make the test invocation “go red."
[1]: https://github.com/emotiq/asdf-test-harness/blob/master/asdf-test-harness.lisp#L42
[2]: https://github.com/emotiq/asdf-test-harness/blob/master/eg/run-with-handler.lisp
> Really, no one should be running with an ASDF that's older than 3.2 these days. I thought that all the OSS lisps were distributed with at least 3.2 now. Why are you running with 3.1.x?
I’m attempting to support a rather diverse set of Lisp hackers using a fair mix of development environments so it is organizationally easier for me to use the built-in ASDF. asdf-3.1.1 is what ccl-1.11.5 ships with, so it is one of versions I would like to support.
My intention for ASDF-TEST-HARNESS will be to provide a single mechanism to support test invocation for variety of differing test frameworks. The necessary [ASDF definition][3] will be quite simple, merely naming the test framework, and the package to test:
(defsystem "asdf-test-harness-example"
:defsystem-depends-on (asdf-test-harness)
:class :harness-test
:test-framework :lisp-unit
:test-package :lisp-unit-example
:components ((:file "lisp-unit-example")))
[3]: https://github.com/emotiq/asdf-test-harness/blob/master/eg/asdf-test-harness-example.asd
Almost all test frameworks which I have reviewed support a method to introspect a package for running the tests contained therein. All one will have to do to support a new framework will be write a specialization on a generic method which given the package name, runs the tests, collects the results, and returns a boolean truth value as to whether that test invocation should be considered pass (“Green”) or fail (“Red”).
Initially, I plan to support LISP-UNIT, PROVE, and FIVEAM.
Now, if I can only get Quicklisp to work again with :DEFSYSTEM-DEPENDS-ON clauses, I will be a pig in slop heaven…
Thanks very much for the help.
--
"A screaming comes across the sky. It has happened before but there is nothing
to compare to it now."
More information about the asdf-devel
mailing list