SUnit: Skipping tests?
Markus Gaelli
gaelli at emergent.de
Mon Mar 27 08:31:45 UTC 2006
Hi Andreas,
> I am in the interesting situation that I'm writing a few tests that
> require large data sets for input and where I don't want people to
> require to download the data sets. My problem is while it's easy to
> determine that the data is missing and skip the test there isn't a
> good way of relaying this to the user. From the user's point of
> view "all tests are green" even though that statement is completely
> meaningless and I'd rather communicate that in a way that says "X
> tests skipped" so that one can look at and decide whether it's
> useful to re-run the tests with the data sets or not.
> Another place where I've seen this to happen is when platform
> specific tests are involved. A test which cannot be run on some
> platform should be skipped meaningfully (e.g., by telling the user
> it was skipped) rather than to appear green and working.
>
> Any ideas?
>
> Cheers,
> - Andreas
>
If it's not possible to put the data zipped into a method because it
would be too big somehow, I'd consider your two examples logically
equivalent to "If the moon is made out of green cheese anything is
allowed". So it is kind of ok that these tests are green.
But you are right, one usually does not think about tests to have
prerequisites, one does think about them as commands, which "always"
bring their necessary context.
And you are suggesting to indicate clearly, which tests depend on
some external resource?
I'd suggest to use (and introduce in general into Squeak)
preconditions using blocks (*1) like:
testCroquetOnXBox
self precondition: [SmalltalkImage current platformName = 'XBox'].
(...)
Having that in place one could easily collect and indicate all the
tests, which have a failed precondition.
They should be rare and all depend on an external resource, which is
too cumbersome to recreate as a scenario.
Cheers,
Markus
(*1) Except backwards compatibility I wouldn't have problems to use
method properties/pragmas for the introduction of pre- and
postconditions either.
More information about the Squeak-dev
mailing list
|